آموزش زبان STL زیمنس؛ دستورات و مثال‌های کاربردی

آموزش دستورات مهم زبان برنامه‌نویسی STL در PLC زیمنس

فصل اول: دستورات منطقی Bit Logic

دستورات Bit Logic از پایه‌ای‌ترین دستورات زبان STL هستند. این دستورات برای انجام عملیات منطقی روی بیت‌ها استفاده می‌شوند و تقریباً در تمام برنامه‌های PLC با آن‌ها مواجه خواهید شد.

دستور AND

A
دستور A مخفف AND است و برای انجام عملیات منطقی AND استفاده می‌شود. در این حالت شرط جدید با نتیجه منطقی قبلی ترکیب می‌شود. زمانی که تمام شروط AND برقرار باشند، نتیجه منطقی RLO برابر یک خواهد شد.
مثال کوتاه
A I0.0
A I0.1
= Q0.0

در این مثال خروجی Q0.0 زمانی فعال می‌شود که هر دو ورودی I0.0 و I0.1 فعال باشند.

دستور AND NOT

AN
دستور AN برای انجام عملیات AND با وضعیت معکوس یک بیت استفاده می‌شود. یعنی شرط زمانی برقرار است که آدرس موردنظر خاموش یا برابر صفر باشد.
مثال کوتاه
A  I0.0
AN I0.1
=  Q0.0

در این حالت I0.0 باید روشن و I0.1 باید خاموش باشد تا Q0.0 فعال شود.

دستور OR

O
دستور O برای انجام عملیات OR استفاده می‌شود. در منطق OR فعال بودن حداقل یکی از شروط برای برقرار شدن نتیجه کافی است.
مثال کوتاه
A I0.0
O I0.1
= Q0.0

اگر I0.0 یا I0.1 فعال باشد، Q0.0 فعال خواهد شد.

دستور OR NOT

ON
دستور ON برای OR کردن نتیجه منطقی با وضعیت معکوس یک بیت استفاده می‌شود. در این حالت وضعیت منطقی آدرس موردنظر قبل از ترکیب با RLO معکوس می‌شود.
مثال کوتاه
A  I0.0
ON I0.1
=  Q0.0

دستور XOR

X
دستور X برای انجام عملیات XOR استفاده می‌شود. در XOR زمانی نتیجه یک می‌شود که وضعیت دو شرط با یکدیگر متفاوت باشد. اگر هر دو ورودی صفر یا هر دو ورودی یک باشند، نتیجه صفر خواهد بود.
مثال کوتاه
A I0.0
X I0.1
= Q0.0

دستور XN

XN
دستور XN برای انجام عملیات XOR با وضعیت معکوس آدرس موردنظر استفاده می‌شود. این دستور در منطق‌های ترکیبی و شرایطی که نیاز به مقایسه وضعیت منطقی معکوس وجود دارد کاربرد دارد.
مثال کوتاه
A  I0.0
XN I0.1
=  Q0.0

شروع گروه منطقی با A(

A(
دستور A( برای شروع یک گروه منطقی استفاده می‌شود. با استفاده از پرانتز می‌توان چند شرط را در یک گروه قرار داد و سپس نتیجه آن گروه را با منطق AND با نتیجه قبلی ترکیب کرد.
مثال کوتاه
A I0.0
A(
O I0.1
O I0.2
)
= Q0.0

منطق این برنامه به صورت زیر است:

I0.0 AND (I0.1 OR I0.2)

شروع گروه منطقی با O(

O(
دستور O( برای شروع یک گروه منطقی استفاده می‌شود. نتیجه این گروه در ادامه با نتیجه منطقی قبلی به صورت OR ترکیب خواهد شد.
مثال کوتاه
A I0.0
O(
A I0.1
A I0.2
)
= Q0.0

پایان گروه منطقی

)
پرانتز بسته برای پایان دادن به یک گروه منطقی استفاده می‌شود. نتیجه عملیات داخل پرانتز پس از بسته شدن گروه، وارد منطق اصلی برنامه می‌شود.
مثال کوتاه
A(
A I0.0
O I0.1
)
= Q0.0

دستور انتساب

=
دستور = نتیجه منطقی فعلی یعنی RLO را در آدرس مشخص‌شده قرار می‌دهد. اگر RLO برابر یک باشد، آدرس مقصد یک و اگر RLO برابر صفر باشد، آدرس مقصد نیز صفر خواهد شد.
مثال کوتاه
A I0.0
= Q0.0

دستور Set

S
دستور S برای Set کردن یک بیت استفاده می‌شود. در صورت برقرار بودن شرط، بیت موردنظر یک می‌شود و تا زمانی که Reset نشود، مقدار یک خود را حفظ می‌کند.
مثال کوتاه
A I0.0
S M0.0

دستور Reset

R
دستور R برای Reset کردن یک بیت استفاده می‌شود. در صورت برقرار بودن شرط، بیت مقصد صفر خواهد شد.
مثال کوتاه
A I0.1
R M0.0

دستور SET

SET
دستور SET مقدار نتیجه منطقی RLO را برابر یک قرار می‌دهد. این دستور زمانی کاربرد دارد که بخواهیم نتیجه منطقی را بدون وابستگی به یک ورودی به صورت یک منطقی تنظیم کنیم.
مثال کوتاه
SET
= M0.0

دستور CLR

CLR
دستور CLR مقدار RLO را برابر صفر قرار می‌دهد. این دستور برای ایجاد نتیجه منطقی صفر در برنامه کاربرد دارد.
مثال کوتاه
CLR
= M0.0

دستور NOT

NOT
دستور NOT وضعیت فعلی RLO را معکوس می‌کند. اگر RLO برابر یک باشد به صفر و اگر برابر صفر باشد به یک تبدیل می‌شود.
مثال کوتاه
A I0.0
NOT
= Q0.0

تشخیص لبه مثبت

FP
دستور FP برای تشخیص لبه مثبت استفاده می‌شود. لبه مثبت زمانی اتفاق می‌افتد که وضعیت یک سیگنال از صفر به یک تغییر کند. این تشخیص معمولاً برای ایجاد یک پالس یک‌سیکل کاربرد دارد.
مثال کوتاه
A I0.0
FP M0.0
= Q0.0

تشخیص لبه منفی

FN
دستور FN برای تشخیص لبه منفی استفاده می‌شود. لبه منفی زمانی اتفاق می‌افتد که وضعیت سیگنال از یک به صفر تغییر کند.
مثال کوتاه
A I0.0
FN M0.0
= Q0.0
فصل دوم: ACCU و دستورات مقایسه

ACCU در PLC زیمنس چیست؟

مفهوم Accumulator

ACCU مخفف Accumulator است. در CPUهای زیمنس، Accumulatorها رجیسترهایی هستند که برای نگهداری موقت داده‌ها هنگام اجرای عملیات استفاده می‌شوند.

در بسیاری از دستورات STL، داده ابتدا توسط دستور L داخل ACCU قرار می‌گیرد و سپس عملیات موردنظر روی آن انجام می‌شود.

ACCU1 چیست؟

ACCU1 یکی از رجیسترهای اصلی CPU برای نگهداری مقدار فعلی مورد استفاده در عملیات است.

وقتی یک مقدار را با دستور L بارگذاری می‌کنیم، مقدار جدید در ACCU1 قرار می‌گیرد.

L MW0

در این حالت مقدار MW0 داخل ACCU1 قرار گرفته است.

ACCU2 چیست؟

ACCU2 برای نگهداری مقدار قبلی هنگام بارگذاری مقدار جدید در ACCU1 استفاده می‌شود.

اگر ابتدا MW0 و سپس MW2 را Load کنیم، مقدار قبلی از ACCU1 به ACCU2 منتقل شده و مقدار جدید در ACCU1 قرار می‌گیرد.

L MW0 L MW2
  • ACCU1 = مقدار MW2
  • ACCU2 = مقدار MW0
نکته بسیار مهم:

ترتیب Load کردن مقادیر در ACCU اهمیت زیادی دارد. هنگام کار با دستورات مقایسه و محاسبات باید بدانیم چه مقداری در ACCU1 و چه مقداری در ACCU2 قرار گرفته است.

مثال ساده ACCU1 و ACCU2

L MW0
L MW2
==I
= M0.0

ابتدا مقدار MW0 وارد ACCU1 می‌شود. سپس با اجرای L MW2، مقدار قبلی به ACCU2 منتقل شده و مقدار MW2 در ACCU1 قرار می‌گیرد. سپس دستور ==I دو مقدار را با هم مقایسه می‌کند.

مقایسه Integer برابر

==I
دستور ==I دو مقدار Integer شانزده‌بیتی را با یکدیگر مقایسه می‌کند. اگر دو مقدار برابر باشند، نتیجه منطقی برابر یک خواهد شد.
مثال کوتاه
L MW0
L MW2
==I
= M0.0

مقایسه Integer نابرابر

<>I
این دستور بررسی می‌کند که دو مقدار Integer با یکدیگر برابر نباشند. اگر دو مقدار متفاوت باشند، نتیجه منطقی یک خواهد شد.
مثال کوتاه
L MW0
L MW2
<>I
= M0.0

مقایسه Integer بزرگ‌تر

>I
دستور >I برای بررسی بزرگ‌تر بودن یک مقدار Integer نسبت به مقدار دیگر استفاده می‌شود. در صورت برقرار بودن شرط، نتیجه منطقی برابر یک خواهد شد.
مثال کوتاه
L MW0
L MW2
>I
= M0.0

مقایسه Integer بزرگ‌تر یا مساوی

>=I
این دستور بررسی می‌کند مقدار Integer موردنظر بزرگ‌تر یا مساوی مقدار دیگر باشد.
مثال کوتاه
L MW0
L MW2
>=I
= M0.0

مقایسه Integer کوچک‌تر

<I
دستور <I برای بررسی کوچک‌تر بودن یک مقدار Integer نسبت به مقدار دیگر استفاده می‌شود.
مثال کوتاه
L MW0
L MW2
<I
= M0.0

مقایسه Integer کوچک‌تر یا مساوی

<=I
این دستور بررسی می‌کند که مقدار Integer کوچک‌تر یا مساوی مقدار دیگر باشد.
مثال کوتاه
L MW0
L MW2
<=I
= M0.0

مقایسه Double Integer برابر

==D
دستور ==D دو مقدار Double Integer سی‌ودوبیتی را با یکدیگر مقایسه می‌کند. اگر دو مقدار برابر باشند، نتیجه منطقی یک می‌شود.
مثال کوتاه
L MD0
L MD4
==D
= M0.0

مقایسه Double Integer بزرگ‌تر

>D
دستور >D برای بررسی بزرگ‌تر بودن یک مقدار Double Integer نسبت به مقدار دیگر استفاده می‌شود.
مثال کوتاه
L MD0
L MD4
>D
= M0.0

مقایسه Double Integer کوچک‌تر

<D
دستور <D برای بررسی کوچک‌تر بودن یک مقدار Double Integer نسبت به مقدار دیگر استفاده می‌شود.
مثال کوتاه
L MD0
L MD4
<D
= M0.0

مقایسه REAL برابر

==R
دستور ==R دو مقدار REAL را با یکدیگر مقایسه می‌کند. در صورت برابر بودن دو مقدار، نتیجه منطقی یک خواهد شد.
مثال کوتاه
L MD0
L MD4
==R
= M0.0

مقایسه REAL بزرگ‌تر

>R
دستور >R برای بررسی بزرگ‌تر بودن یک مقدار REAL نسبت به مقدار دیگر استفاده می‌شود.
مثال کوتاه
L MD0
L MD4
>R
= M0.0

مقایسه REAL کوچک‌تر

<R
دستور <R برای بررسی کوچک‌تر بودن یک مقدار REAL نسبت به مقدار دیگر استفاده می‌شود.
مثال کوتاه
L MD0
L MD4
<R
= M0.0
نکته: پسوند دستور مقایسه نوع داده را مشخص می‌کند.
I برای Integer، D برای Double Integer، و R برای REAL استفاده می‌شود.
فصل سوم: دستورات Conversion

دستورات Conversion برای تبدیل نوع داده‌ها به یکدیگر استفاده می‌شوند. زمانی که یک مقدار در قالب خاصی در اختیار PLC قرار دارد اما برای ادامه محاسبات به نوع دیگری نیاز داریم، از این دستورات استفاده می‌کنیم.

تبدیل BCD به Integer

BTI
دستور BTI مقدار BCD را به Integer تبدیل می‌کند. این تبدیل زمانی کاربرد دارد که داده‌ای به صورت BCD دریافت شده و برای عملیات عددی به Integer نیاز داشته باشیم.
مثال کوتاه
L MW0
BTI
T MW2

تبدیل Integer به BCD

ITB
دستور ITB مقدار Integer را به فرمت BCD تبدیل می‌کند. این تبدیل در ارتباط با تجهیزاتی که داده را به صورت BCD دریافت می‌کنند می‌تواند کاربرد داشته باشد.
مثال کوتاه
L MW0
ITB
T MW2

تبدیل BCD به Double Integer

BTD
دستور BTD مقدار BCD را به Double Integer سی‌ودوبیتی تبدیل می‌کند.
مثال کوتاه
L MD0
BTD
T MD4

تبدیل Double Integer به BCD

DTB
دستور DTB مقدار Double Integer را به فرمت BCD تبدیل می‌کند.
مثال کوتاه
L MD0
DTB
T MD4

تبدیل Integer به Double Integer

ITD
دستور ITD مقدار Integer شانزده‌بیتی را به Double Integer سی‌ودوبیتی تبدیل می‌کند. این تبدیل برای زمانی کاربرد دارد که محدوده یک Integer کافی نباشد و به یک مقدار 32 بیتی نیاز داشته باشیم.
مثال کوتاه
L MW0
ITD
T MD4

تبدیل Double Integer به REAL

DTR
دستور DTR مقدار Double Integer را به عدد REAL تبدیل می‌کند. این دستور در محاسبات اعشاری و محاسبات مهندسی بسیار کاربردی است.
مثال کوتاه
L MD0
DTR
T MD4

متمم یک Integer

INVI
دستور INVI متمم یک مقدار Integer شانزده‌بیتی را محاسبه می‌کند. این دستور در عملیات سطح پایین و پردازش داده‌های بیتی کاربرد دارد.
مثال کوتاه
L MW0
INVI
T MW2

متمم یک Double Integer

INVD
دستور INVD متمم یک مقدار Double Integer سی‌ودوبیتی را محاسبه می‌کند.
مثال کوتاه
L MD0
INVD
T MD4

تغییر علامت Integer

NEGI
دستور NEGI علامت مقدار Integer را تغییر می‌دهد. در واقع برای ایجاد مقدار منفی یا مثبت مخالف مقدار فعلی استفاده می‌شود.
مثال کوتاه
L MW0
NEGI
T MW2

تغییر علامت Double Integer

NEGD
دستور NEGD علامت یک مقدار Double Integer را تغییر می‌دهد. مقدار مثبت به منفی و مقدار منفی به مثبت تبدیل می‌شود.
مثال کوتاه
L MD0
NEGD
T MD4

تغییر علامت REAL

NEGR
دستور NEGR علامت یک مقدار REAL را تغییر می‌دهد. به عنوان مثال مقدار 12.5 به -12.5 تبدیل می‌شود.
مثال کوتاه
L MD0
NEGR
T MD4

تغییر ترتیب Byte در مقدار 16 بیتی

CAW
دستور CAW ترتیب دو Byte یک مقدار 16 بیتی را جابه‌جا می‌کند. این دستور در شرایطی که ترتیب Byte داده با ساختار موردنیاز سیستم متفاوت باشد کاربرد دارد.
مثال کوتاه
L MW0
CAW
T MW2

تغییر ترتیب Byte در مقدار 32 بیتی

CAD
دستور CAD برای تغییر ترتیب Byteهای یک مقدار 32 بیتی استفاده می‌شود. این دستور در پردازش داده‌هایی که ترتیب Byte آن‌ها متفاوت است کاربرد دارد.
مثال کوتاه
L MD0
CAD
T MD4

گرد کردن مقدار REAL

RND
دستور RND یک مقدار REAL را به نزدیک‌ترین مقدار صحیح گرد می‌کند. برای مثال مقدار 13.2 به 13 و مقدار 13.8 به 14 نزدیک می‌شود.
مثال کوتاه
L MD0
RND
T MD4

حذف قسمت اعشاری

TRUNC
دستور TRUNC قسمت اعشاری یک مقدار REAL را حذف می‌کند و بخش صحیح مقدار را باقی می‌گذارد. برای مثال 13.8 به 13 تبدیل می‌شود.
مثال کوتاه
L MD0
TRUNC
T MD4

گرد کردن به سمت مثبت

RND+
دستور RND+ برای گرد کردن مقدار REAL در جهت مثبت استفاده می‌شود. این دستور یکی از روش‌های تبدیل مقدار اعشاری به مقدار صحیح است.
مثال کوتاه
L MD0
RND+
T MD4

گرد کردن به سمت منفی

RND-
دستور RND- برای گرد کردن مقدار REAL در جهت منفی استفاده می‌شود.
مثال کوتاه
L MD0
RND-
T MD4

خرید و تعمیرات تجهیزات زیمنس

برق موشن ارائه‌دهنده خدمات فروش، مشاوره، راه‌اندازی و تعمیرات درایوهای زیمنس است. برای خرید تجهیزات زیمنس یا دریافت خدمات تعمیرات درایو زیمنس، بخش موردنظر خود را انتخاب کنید.

خرید، تعمیرات و اجرای پروژه SIEMENS

جهت خرید HMI زیمنس، PLC زیمنس، اینورتر SIEMENS و سایر محصولات اتوماسیون صنعتی یا برای تعمیرات و اجرای پروژه‌های اتوماسیون صنعتی زیمنس با برق موشن تماس بگیرید.

فروش محصولات SIEMENS 09331234717 تعمیرات تجهیزات SIEMENS 09011234717 اجرای پروژه‌های اتوماسیون صنعتی 09381234717
برق موشن نمایندگی زیمنس | فروش، تعمیرات و اجرای پروژه‌های اتوماسیون صنعتی
  • تنظیمات ورودی و خروجی های اینورتر اینوت GD20

    ورودی و خروجی دیجیتال و آنالوگ اینورتر INVT GD20 معرفی ترمینال‌ها، پارامترهای P05 و P06 و نحوه استفاده از ورودی‌ها و خروجی‌های GD20 ورودی و خروجی‌های اینورتر INVT GD20 اینورتر INVT GD20 برای اتصال به تجهیزات کنترلی مانند PLC، سنسورها، شستی‌ها، پتانسیومتر و تجهیزات اندازه‌گیری دارای ورودی‌ها و خروجی‌های دیجیتال و آنالوگ است. در GD20 […]

  • تنظیم پارامتر درایو GD350 اینوت | کاتالوگ فارسی اینورتر GD350A

    منوال فارسی و کاتالوگ اینورتر INVT GD350A معرفی مشخصات، پارامترها، ترمینال‌ها و کارت‌های توسعه اینورتر GD350A معرفی اینورتر INVT GD350A INVT GD350A نسل جدید اینورترهای High Performance شرکت INVT است که به عنوان نسخه ارتقایافته GD350 طراحی شده است. این درایو با استفاده از پلتفرم سخت‌افزاری و نرم‌افزاری جدید، امکانات گسترده‌ای برای کنترل دقیق موتور، […]

  • معرفی HMI اینوت

    HMI اینوت INVT چیست؟ معرفی کامل سری‌ها، مدل‌ها، مشخصات و کاربردها HMI اینوت INVT یکی از تجهیزات مهم در اتوماسیون صنعتی است که برای ارتباط بین اپراتور، PLC، درایو و ماشین‌آلات صنعتی مورد استفاده قرار می‌گیرد. HMI اینوت با فراهم کردن یک رابط گرافیکی به اپراتور اجازه می‌دهد وضعیت ماشین را مشاهده کرده، پارامترهای فرآیند […]

  • دانلود منوال و کاتالوگ درایو اینوونس

    دانلود منوال و کاتالوگ درایو اینوونس جایگاه درایوهای اینوونس در صنعت شرکت Inovance یکی از برندهای پیشرو و شناخته شده در حوزه اتوماسیون صنعتی و کنترل دورموتور (اینورتر) است که با ارائه طیف متنوعی از درایوهای AC، پاسخگوی نیاز صنایع سبک، متوسط و سنگین است. این برند با توسعه محصولات اقتصادی، صنعتی، سنگین کار و […]

  • برنامه نویسی پی ال سی زیمنس

    برنامه نویسی PLC زیمنس؛ پروژه‌ها، صنایع و نرم افزارهای Siemens برنامه نویسی PLC زیمنس یکی از مهم‌ترین بخش‌های اتوماسیون صنعتی است و در بسیاری از ماشین‌آلات، خطوط تولید و سیستم‌های کنترل صنعتی مورد استفاده قرار می‌گیرد. PLCهای زیمنس در خانواده‌های مختلف تولید شده‌اند و هر خانواده برای سطح مشخصی از پروژه‌های صنعتی کاربرد دارد. برنامه […]

  • درایوهای دلکسی

    دانلود منوال درایوهای دلیکسی درایوهای فرکانس متغیر برند(Delixi) به عنوان یکی از اقتصادی ترین و در عین حال کارآمدترین گزینه ها در بازار تجهیزات اتوماسیون صنعتی شناخته میشوند.این درایو ها باپوشش طیف وسیعی از توان ها و کاربری ها، از کاربردهای سبک کارگاهی تا پروژه های سنگین صنعتی را پوشش میدهند.  کاربردهای صنعتی درایو دلیکسی […]

  • دانلود منوال و کاتالوگ درایو پنتاکس

    فهرست مطالب دانلود منوال و کاتالوگ درایو پنتاکس درایوهای صنعتی پنتاکس با هدف کنترل دقیق موتورهای الکتریکی، بهینه‌سازی مصرف انرژی و افزایش پایداری عملکرد در فرآیندهای صنعتی طراحی شده‌اند. این تجهیزات با قابلیت تنظیم سرعت، کنترل شتاب و کاهش تنش‌های مکانیکی، در طیف گسترده‌ای از کاربردها از پمپ و فن تا ماشین‌آلات تولیدی و سامانه‌های […]

  • منوال درایو های SEW

    منوال و کاتالوگ درایو SEW درایوهای SEW-EURODRIVE از شناخته‌شده‌ترین درایوهای صنعتی هستند و در کاربردهایی مانند نوار نقاله، جرثقیل، میکسر، اکسترودر، پمپ، فن و ماشین‌آلات اتوماسیون استفاده می‌شوند. این شرکت علاوه بر اینورتر، گیربکس، موتور، سروو موتور و سیستم‌های کامل انتقال قدرت نیز تولید می‌کند.  کاربردهای صنعتی درایو اس ای دابلیو MOVITRAC  LTP- B سری […]

  • ماژول دیجیتال و آنالوگ فتک FBS

    ماژول دیجیتال PLC FATEK-FBS برای خرید  ماژول های دیجیتال فتک از روی پلاک میتوانیم یکسری اطلاعات را بدست بیاوریم.نام X یا Y نشان دهنده ورودی و خروجی بودن کارت است و اگر هردو  در نام کارت باشد یعنی کارت هم خروجی است هم ورودی.حرف R آخر پلاک نشان دهدنه خروجی رله ای و حرف T  […]