آموزش زبان 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
برق موشن نمایندگی زیمنس | فروش، تعمیرات و اجرای پروژه‌های اتوماسیون صنعتی
  • تنظیمات بالابر در درایو اینوت GD350-19

    تنظیمات بالابر درایو اینوت GD350-19 در حالت Open Loop درایو GD350-19 برای کاربردهای بالابر و جرثقیل دارای ماکروی اختصاصی است. در حالت Open Loop، با قرار دادن پارامتر P90.00=1، درایو وارد حالت کنترل برداری بدون انکودر برای کاربرد بالابر می‌شود. در این حالت بخشی از پارامترهای ورودی، خروجی، چندسرعته، ترمز و حفاظت به‌صورت اختصاصی برای […]

  • تفاوت PLC دلتا و زیمنس؛ مقایسه امکانات، قیمت و کاربردها

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

  • نصب اینورتر

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

  • منوال فارسی اینورتر اشنایدر ATV320 | کاتالوگ و راهنمای تنظیمات درایو ATV320

    راهنمای فارسی درایو Schneider ATV320 | معرفی کامل اینورتر ATV320 اینورتر اشنایدر ATV320 | معرفی کامل Schneider ATV320 اینورتر ATV320 یکی از محبوب‌ترین محصولات خانواده Altivar Machine شرکت Schneider Electric است که به‌طور ویژه برای ماشین‌آلات صنعتی و سازندگان تجهیزات (OEM) طراحی شده است. اینورتر Schneider ATV320 با ابعاد فشرده، امکانات کنترلی پیشرفته، قابلیت برنامه‌ریزی […]

  • معرفی کیپد درایو اینوت

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

  • مدباس اینورتر اینوت

    ارتباط Modbus اینورتر INVT؛ راهنمای کامل تنظیم، سیم‌بندی و راه‌اندازی در سیستم‌های اتوماسیون صنعتی، ارتباط بین تجهیزات مختلف اهمیت بسیار زیادی دارد. یکی از رایج‌ترین روش‌های ارتباطی مورد استفاده در اینورترهای INVT، پروتکل Modbus RTU بر بستر RS485 است. این ارتباط امکان تبادل اطلاعات میان اینورتر، PLC، HMI و سیستم‌های مانیتورینگ را فراهم می‌کند. با […]

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

    دانلود منوال و کاتالوگ درایو Emotron شرکت اموترون(Emotron  )یکی از پیشگامان سوئدی و اروپایی در طراحی و تولید تجهیزات کنترل دور موتور (اینورتر)، سافت استارتر و سیستم های مدیریت هوشمند موتورهای الکتریکی است که امروزه تحت عنوان هلدینگ Automation & Drives CG به فعالیت خود ادامه میدهد. تمرکز اصلی اموترون بر کاهش مصرف انرژی، بهینه […]

  • تنظیم پارامتر و ماکروهای مهم درایو G120

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

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

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