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

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

  • معرفی ماژول های PLC فتک | کارت های پی ال سی فتک

    PLC فتک FATEK | معرفی سری‌ها و نحوه پلاک‌خوانی شرکت FATEK تایوان از سال 1992 در حوزه اتوماسیون صنعتی فعالیت می‌کند و یکی از تولیدکنندگان تجهیزات کنترل صنعتی از جمله PLC و HMI با برند فتک است. PLCهای فتک در خانواده‌های مختلفی از جمله B1 / B1Z و FBS عرضه شده‌اند و برای برنامه‌نویسی و […]

  • راهنمای خرید درایو | راهنمای خرید اینورتر با گارانتی

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

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

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

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

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

  • PID پی ال سی فتک

    PID در پی ال سی فتک استفاده از PID با پی ال سی فتک یکی از راهکارهای کاربردی برای کنترل دقیق فرآیندهای صنعتی است. کنترل PID در PLC FATEK امکان کنترل پارامترهایی مانند دما، فشار، دبی، سطح و سرعت را فراهم می‌کند. مفهوم PID به زبان ساده (در محیط صنعتی) P: P (Proportional – تناسبی): […]

  • آموزش زبان STL -دستورات بیت و مقایسه و تبدیل

    آموزش زبان STL زیمنس؛ دستورات و مثال‌های کاربردی آموزش دستورات مهم زبان برنامه‌نویسی STL در PLC زیمنس جست‌وجوی سریع آدرس در برنامه PLC زیمنس یکی از مهم‌ترین مهارت‌ها هنگام کار با برنامه‌های PLC زیمنس، پیدا کردن سریع محل استفاده از یک آدرس در برنامه است. در پروژه‌های کوچک شاید بتوان آدرس‌ها را به‌صورت دستی پیدا […]

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

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

  • اینورتر (درایو) چیست؟

    درایو(اینورتر) چیست؟ در دنیای مدرن اتوماسیون صنعتی، اگر PLC را “مغز” سیستم بدانیم، درایو (Drive)یا همان اینورتر، بدون شک »عضلات هوشمند« این پیکره است. امروز دیگر صرفاً چرخیدن یک موتور اهمیت ندارد؛ بلکه چگونه چرخیدن، با چه سرعتی حرکت کردن و چقدر انرژی مصرف کردن است که تفاوت میان یک کارخانه سنتی و یک واحد […]