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

    اچ ام آی HMI چیست؟ در دنیای مدرن اتوماسیون، (Interface Machine-Human (HMI نه تنها یک نمایشگر، بلکه قلب تپنده و چشم بینای سیستم های صنعتی است. HMI به عنوان یک پل ارتباطی دیجیتال،اطلاعات پیچیده دستگاه ها و PLCها را به زبانی ساده و گرافیکی برای اپراتور ترجمه میکند کالبدشکافی عملکرد HM HMI از دو بخش […]

  • اتوتیون در اینورتر اینوت GD200A

    اتوتیون درایو GD200A اینوت اتوتیون درایو GD200A اینوت یکی از مراحل مهم راه‌اندازی موتور با اینورتر Goodrive200A است. قابلیت Motor Parameter Autotuning به درایو اجازه می‌دهد با توجه به شرایط موتور، پارامترهای لازم برای مدل‌سازی و کنترل موتور را شناسایی کند. اجرای صحیح اتوتیون می‌تواند به بهبود کنترل سرعت، گشتاور و عملکرد موتور کمک کند. […]

  • تنظیمات بوسترپمپ درایو دانفوس

    تنظیمات بوسترپمپ درایو دانفوس درایو DANFOSS FC51  شرکت دانفوس یکی از پرکاربردترین اینورتر های شرکت دانفوس است . اينورتر FC51 با نام Micro VLT Danfoss که توسط شرکت دانفوس توليد می شود در محدوده توان 0.18 کيلو وات تا 22 کيلو وات موجود است . مدل تکفاز اين اينورتر، از 0.18 تا 2.2 کيلو وات […]

  • آموزش زبان STL -دستورات تایمر و شیفت رجیستر

    آموزش زبان STL زیمنس؛ کنترل برنامه، تایمر و عملیات داده آموزش دستورات Program Control، Shift و Rotate، Timer، Word Logic و Accumulator بخش دهم: Program Control دستورات Program Control برای کنترل روند اجرای برنامه استفاده می‌شوند. با کمک این دستورات می‌توان اجرای یک Block را پایان داد، بلوک دیگری را فراخوانی کرد یا بخشی از […]

  • معرفی پی ال سی های دلتا

    معرفی پی ال سی های دلتا پی ال سی های دلتا از شناخته شده ترین کنترل کننده های منطقی برنامه پذیر در صنعت اتوماسیون هستند. این خانواده به دلیل تنوع بالا در سریها، قیمت مناسب، قابلیت اطمینان قابل قبول و پشتیبانی مناسب نرم افزاری، در پروژه های کوچک تا پیشرفته مورد استفاده قرار میگیرد. دلتا […]

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

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

  • درایوهای فانوک

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

  • ماکرو های درایو V20 زیمنس

    تنظیم Connection Macro در درایو زیمنس در درایوهای زیمنس، Connection Macro برای انتخاب تنظیمات آماده مربوط به نحوه فرمان‌دهی، مرجع فرکانس، ورودی‌ها و خروجی‌های درایو استفاده می‌شود. این تنظیمات می‌توانند برای کاربردهای مختلف، فرآیند راه‌اندازی و تنظیم اولیه درایو را ساده‌تر کنند. نکته مهم: تغییر Connection Macro یک تنظیم یک‌باره محسوب می‌شود و طبق منوال، […]

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

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