بهترین روش ها و نکات برنامه نویسی PLC

بهترین روش ها و نکات برنامه نویسی PLC

بهترین روش ها و نکات برنامه نویسی PLC

در این مقاله نکات و نکاتی را مشاهده خواهید کرد که باید قبل و هنگام نوشتن کد PLC به آنها توجه کنید.

برای اطمینان از یک کد PLC تمیز، خوش نوشته و خوانا.

بهترین روش ها و نکات برنامه نویسی PLC

بهترین روش ها و نکات برنامه نویسی PLC
بهترین روش ها و نکات برنامه نویسی PLC

نکات و ترفندهای PLC ذکر شده در زیر در اینجا مورد بحث قرار خواهند گرفت.

 

نکات مهم برنامه نویسی PLC

  • از دستورالعمل های SET/RESET استفاده بی مورد نکنید.
  • تفکیک IOs
  • برنامه نویسی IO های آنالوگ
  • منتظر بمانید تا ورودی های شما یکنواخت گردد.
  • هشدارها و اعلان ها
  • نقاط تنظیمات

از دستورالعمل های SET/RESET استفاده بی مورد نکنید.

شما نباید از دستورالعمل های SET و RESET در کد خود استفاده بیجا و بیش از حد نمایید.

  • شما می خواهید یک BIT را فقط در یک مکان از کد خود فعال کنید تا عیب یابی برنامه خود را آسان تر کنید. بطور مثال اگر آن بیت در زمانی که نباید کار می کرد یا اصلا کار نمی کرد.
  • بنابراین استفاده از گزینه های SET و RESET برای اعمال یا اصلاح یک بیت که در جاهای مختلفی از کد PLC از آن استفاده شده، در صورت بروز مشکل در کد شما، اشکال زدایی را دشوار می‌کند.
  • این بدان معنا نیست که شما نباید از دستورات SET و RESET استفاده کنید، فقط به این معنی است که باید مراقب باشید که یک بیت را در بسیاری از جاها تنظیم و تنظیم مجدد نکنید.

و اگر مجبور باشید، می‌توانید از شاخه‌ها برای تنظیم و تنظیم مجدد همان بیت در همان رنج استفاده کنید، صرف نظر از اینکه چند شاخه این بیت را فعال می‌کند، در صورت نیاز دنبال کردن آن آسان‌تر شود.

تفکیک IO در برنامه نویسی PLC

برنامه نویسی ورودی های دیجیتال:

هنگام تنظیم ورودی های دیجیتال خود در برنامه PLC، بهتر است از آنها به طور مستقیم در کد خود استفاده نکنید. در عوض، باید از این بیت ورودی برای راه اندازی بیت حافظه دیگری (یک نشانگر / مارکر یا یک برچسب / تگ در PLC) استفاده کنید و سپس از این تگ جدید به عنوان ارایه کننده از این ورودی، در کل برنامه PLC استفاده کنید.

به عنوان مثال، ورودی %I0.0 (ورودی آغاز) بیتِ %M0.0 را در PLC راه‌اندازی می‌کند و این بیت به عنوان نایب ورودی برای نقطه شروع در سراسر کد PLC استفاده می‌شود.

چرا به جای اینکه مستقیماً خود ورودی را مد نظر قراردهیم باید از بیت استفاده می کنیم؟

زیرا بنا به تجربه بهترین روش انجام این کار به این صورت است.فرض کنید اگر به هر دلیلی ما نیاز به تغییر آن ورودی از %I0.0 به %I0.4 داشتیم، نمی‌خواهیم که ورودی %I0.0 در هرکجای برنامه جستجو کرده و آن را به %I0.4 تغییر دهیم زیرا اگر از این ورودی در مکان های بسیاری از کد خود استفاده کرده باشید، ممکن است زمان زیادی طول بکشد، و همچنین ممکن است برخی از ورودی‌ها را بدون تغییر از جابیندیزید، که این می تواند برنامه شما را به هم بریزد.

بنابراین به جای آن، ما فقط آن را در یک خط تغییر می دهیم و تغییر مستقیماً روی تمام % M0.0 که من در برنامه خود استفاده می کنم، اجرا می شود.

این تکنیک به عنوان Segregation شناخته می شود.

در مورد خروجی ها هم همینطور:

برای خروجی ها هم همینطور بهتر است از یک بیت حافظه PLC برای انرژی بخشیدن به بیت خروجی و استفاده از این بیت حافظه در کل برنامه استفاده گردد.

برنامه نویسی IO های آنالوگ

هنگام برخورد با ورودی های آنالوگ، ابتدا باید سیگنال خود را قبل از پرداختن به آن در کد PLC خود آماده کنیم. زیرا سیگنال های آنالوگ بسته به نوع سنسور به صورت 0-10 ولت یا 4-20 میلی آمپر به PLC می آیند و این محدوده از مقدار به کمیت فیزیکی واقعی که سنسور اندازه گیری می کند، اعم از دما، فشار، سطح و … اشاره دارد. و غیره.

به این روش مقیاس گذاری سیگنال می گویند که سیگنال آنالوگ را از محدوده ولت یا آمپر به مقدار واقعی که سنسور اندازه می گیرد تبدیل می کند.

بلوک های از پیش برنامه ریزی شده ای در داخل PLC وجود دارند که مقیاس بندی را برای شما اجرا می کنند، مانند بلوک های SCALE و Normalize در TIA Portal یا SCP Block در آلن برادلی.

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

به عنوان مثال: اگر در سیستم سنسوری دارید که خروجی 4-20 میلی آمپر به ازاء 0-100 % می دهد، به طوری که اگر ورودی کمتر از 4 یا بیشتر از 20 بود شما نمی خواهید سیستم به شما یک سطح منفی یا یک مقدار سطحی بالاتر از 100٪ بدهد.

بنابراین ما ورودی را با مقادیر حداقل و حداکثر (4-20 میلی آمپر) تنظیم می کنیم و سیستم مقیاس بندی را مجبور می کنیم که در چنین بازه ای مقادیر منطقی به ما بدهد.

روش خوب دیگر این است که اگر مقدار ورودی برای مدت معینی از حد خود فراتر رفت، یک زنگ هشدار تنظیم کنید. برای هشدار به اپراتور مبنی بر اینکه سنسور ممکن است معیوب باشد یا ممکن است مشکلی در میدان وجود داشته باشد.

برای همگام شدن و یکنواختی سیگنالهای ورودی صبر کنید

این برای هنگامی است که شما منتظر یک سیگنال ورودی هستید که از سنسوری می آید که یک کمیت فیزیکی مانند دما، فشار یا سطح سیال را اندازه گیری می کند، چه سیگنال آنالوگ یا دیجیتال باشد . شما باید مدتی سیگنال ورودی را در نظر داشته باشید تا مطمئن شوید که این فقط یک نویز در سیستم شما نیست و در واقع به یک سطح معین رسیده است.

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

بنابراین، بهترین نکته ای که میشود بکار بست این است که همیشه از یک تایمر همراه با آن سیگنال ورودی استفاده کنید و تنها زمانی سیستم فعال شود که سیگنال برای مدت زمان مشخصی پایدار بوده باشد (مثلاً 10 ثانیه بعداز آخرین نوسان).

هشدارها و اعلان ها در برنامه نویسی PLC

هشدارها و اعلان‌ها به ما می‌گویند که سیستم/فرایند مشکلاتی دارد، چیزی درست نیست یا چیزی به توجه شما نیاز دارد.

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

یک اعلان فقط به شما می گوید که چیزی غیرعادی است، اما لزوما به اندازه کافی خطر برای متوقف کردن فرآیند ندارد، مانند سطح مخزن آب که کمی بالاتر از حد مجاز است.

به عنوان بهترین روش، باید همیشه از کدگذاری هشدار/اعلان دو بیتی استفاده کنید تا آنها را از هم مجزا کنید، بنابراین می توانید به اپراتور این امکان را بدهید که آژیر اعلان یا فلاشر را بی صدا کند بدون اینکه منتظر پاک شدن وضعیت هشدار باشد.

در نتیجه شما دو بیت مجزا خواهید داشت، یکی برای زنگ هشدار که فرآیند را متوقف می کند و تنها زمانی که شرایط هشدار پاک شود، بازنشانی می شود. یک بیت دیگر برای فعال کردن یک فلاشر یا یک آژیر است تا به اپراتور اطلاع دهد که مشکلی در فرآیند وجود دارد.

ملاحظات

  1. ایمنی برای اپراتورها و فرآیند.
  2. موارد ضروری در راه اندازی و فرآیند
  3. زنگ باید توسط اپراتور بازنشانی شده یا خودکار ری ست گردد
  4. آیا باید از تایمر تأخیر (هشدار سطح آب) استفاده کنم یا فوراً زنگ هشدار را تنظیم کنم (توقف اضطراری یا قطع کننده مدار)
  5. پس از تنظیم آلارم های خود، فراموش نکنید که این آلارم ها را در کنترل منطقی خود بگنجانید، به عنوان مثال زمانی که زنگ هشدار سطح بالا فعال است، پمپ تغذیه نباید کار کند، بنابراین باید این شرایط را به کدگذاری پمپ خود اضافه کنید.

نقاط تنظیم

یکی دیگر از روش‌های خوب هنگام کدنویسی برنامه‌تان این است که به خاطر داشته باشید که هر مقدار ثابتی که استفاده می‌کنید ممکن است در یک زمان تغییر کند، بنابراین می‌توانید آن را از ابتدا قابل تنظیم برنامه نویسی کنید.

به عنوان مثال، اگر از تایمر استفاده می کنید و زمان از پیش تعیین شده را روی 10 ثانیه تنظیم کرده اید. اگر در آینده اپراتور بخواهد آن را به 5 یا 15 ثانیه تغییر دهد، برای همه راحت خواهد بود که این نقطه تنظیم را از مرحله کدگذاری تنظیم کنید.

هر مقدار ثابت را می توان به عنوان مقادیر قابل تنظیم قرار داد، فقط باید از خود بپرسید چه چیزی تجربه اپراتور را آسان تر و کارآمدتر می کند و چه چیزی ضروری نیست.

نتیجه

نکات ذکر شده در بالا مهارت های برنامه نویسی و کدنویسی PLC شما را بهینه می کند، خوانایی آن را واضح و آسان می کند و کار با سیستم را برای شما و دیگران آسان تر می نماید.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.2″ background_size=”initial” background_position=”top_left” background_repeat=”repeat” custom_width_px=”710px”][et_pb_column type=”4_4″ _builder_version=”3.25″ background_position=”top_left” custom_padding=”|||” custom_padding__hover=”|||”][et_pb_blog fullwidth=”off” posts_number=”3″ show_author=”off” show_date=”off” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” body_font=”yekan|500|||||||” meta_font=”Montserrat||||||||” meta_text_color=”rgba(0,0,0,0)” text_orientation=”center” box_shadow_style=”preset1″ box_shadow_style_image=”preset2″][/et_pb_blog][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.2″ _module_preset=”default”][et_pb_column type=”4_4″ _builder_version=”4.9.2″ _module_preset=”default”][et_pb_shop type=”product_category” include_categories=”106″ _builder_version=”4.9.2″ _module_preset=”default”][/et_pb_shop][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.2″ _module_preset=”default”][et_pb_column type=”4_4″ _builder_version=”4.9.2″ _module_preset=”default”][et_pb_divider color=”#E09900″ divider_weight=”4px” _builder_version=”4.9.2″ _module_preset=”default”][/et_pb_divider][/et_pb_column][/et_pb_row][et_pb_row column_structure=”2_5,3_5″ use_custom_gutter=”on” gutter_width=”2″ make_equal=”on” _builder_version=”4.3.4″ background_size=”initial” background_position=”top_left” background_repeat=”repeat” custom_padding=”|||”][et_pb_column type=”2_5″ _builder_version=”4.3.4″ background_color=”#ffffff” background_position=”top_left” custom_padding=”50px|40px|50px|40px” custom_padding__hover=”|||”][et_pb_text admin_label=”Contact US Title” _builder_version=”4.3.4″ text_font=”vazir|800|||||||” text_font_size=”16px” header_font=”Montserrat||||” header_text_color=”#1f1f1f” header_font_size=”22px” text_orientation=”center” custom_padding=”0px|0px|0px|0px” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” inline_fonts=”vazir”]

نزدیک به شما

[/et_pb_text][et_pb_text admin_label=”Contact US Text” _builder_version=”4.8.1″ text_font=”sahel|700|||||||” text_text_color=”#000000″ text_font_size=”18px” text_line_height=”1.8em” header_font=”||||” header_text_color=”#1f1f1f” custom_margin=”20px||40px|” custom_padding=”0px|0px|0px|0px” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” text_font_size_tablet=”” text_font_size_phone=”18px” text_font_size_last_edited=”on|phone”]

ارتباط آسان و مستمر با مشتریان هدف ماست

[/et_pb_text][et_pb_blurb title=”آدرس” use_icon=”on” font_icon=”%%249%%” icon_color=”#6eba01″ icon_placement=”left” use_icon_font_size=”on” icon_font_size=”28px” icon_font_size_last_edited=”off|desktop” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” header_text_align=”center” header_font_size=”18px” body_font=”sahel|700|||||||” body_text_align=”center” body_text_color=”#000000″ body_font_size=”16px” custom_margin=”||14px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” body_font_size_tablet=”” body_font_size_phone=”21px” body_font_size_last_edited=”on|phone”]مشهد، بلوار توس، توس 97/9 (هشت متری آریایی) – پلاک 62

[/et_pb_blurb][et_pb_blurb title=”تلفن” use_icon=”on” font_icon=”%%104%%” icon_color=”#6eba01″ icon_placement=”left” use_icon_font_size=”on” icon_font_size=”28px” icon_font_size_last_edited=”off|desktop” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” header_text_align=”center” header_font_size=”18px” body_font=”sahel|700|||||||” body_text_align=”center” body_text_color=”#000000″ body_font_size=”16px” custom_margin=”||14px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” body_font_size_tablet=”” body_font_size_phone=”21px” body_font_size_last_edited=”on|phone”]09151211239 مهندس رضا تاج

[/et_pb_blurb][et_pb_blurb title=”ایمیل” use_icon=”on” font_icon=”%%238%%” icon_color=”#6eba01″ icon_placement=”left” use_icon_font_size=”on” icon_font_size=”28px” icon_font_size_last_edited=”off|desktop” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” header_text_align=”center” header_font_size=”18px” body_font=”sahel|700|||||||” body_text_align=”center” body_text_color=”#000000″ body_font_size=”16px” custom_margin=”||14px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” body_font_size_tablet=”” body_font_size_phone=”21px” body_font_size_last_edited=”on|phone”]Info@ehyagran.ir

[/et_pb_blurb][et_pb_blurb title=”واتساپ” icon_placement=”left” icon_font_size_last_edited=”off|desktop” admin_label=”Email” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” header_text_align=”center” body_font=”|700|||||||” body_text_align=”center” body_text_color=”#000000″ body_font_size=”16px” custom_margin=”|||” custom_padding=”||6px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” body_font_size_tablet=”” body_font_size_phone=”25px” body_font_size_last_edited=”on|phone”]واتساپ

[/et_pb_blurb][et_pb_blurb title=”اینستاگرام” icon_placement=”left” icon_font_size_last_edited=”off|desktop” admin_label=”Email” _builder_version=”4.9.2″ header_font=”vazir|700|||||||” header_text_align=”center” body_font=”|700|||||||” body_text_align=”center” body_text_color=”#000000″ body_font_size=”16px” custom_margin=”|||” custom_padding=”||6px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” body_font_size_tablet=”” body_font_size_phone=”25px” body_font_size_last_edited=”on|phone”]اینستاگرام

[/et_pb_blurb][/et_pb_column][et_pb_column type=”3_5″ _builder_version=”3.25″ background_color=”#ffffff” background_position=”top_left” custom_padding=”50px|40px|50px|40px” custom_padding__hover=”|||”][et_pb_sidebar _builder_version=”4.9.2″ _module_preset=”default” width=”100%” custom_margin=”|-3px||||” custom_padding=”|||0px||”][/et_pb_sidebar][et_pb_contact_form captcha=”off” title=”پیام شما” use_redirect=”on” redirect_url=”Info@ehyagran.ir” success_message=”پیام شما دریافت شد” submit_button_text=”ارسال” module_id=”et_pb_contact_form_1″ _builder_version=”4.0.6″ form_field_background_color=”rgba(255,255,255,0)” title_font=”vazir||||||||” title_font_size=”22px” form_field_font=”yekan|600|||||||” custom_button=”on” button_text_size=”18px” button_text_color=”#000000″ button_bg_color=”#6eba01″ button_border_width=”3px” button_border_color=”#6eba01″ button_border_radius=”0px” button_letter_spacing=”2px” button_font=”yekan|700||on|||||” button_use_icon=”off” text_orientation=”right” custom_padding=”||0px|||” animation_style=”fold” animation_direction=”bottom” animation_intensity_fold=”20%” border_width_all=”1px” border_color_all=”rgba(0,0,0,0.12)” border_style_all=”solid” use_border_color=”on” border_color=”rgba(0,0,0,0.12)” form_background_color=”rgba(255,255,255,0)” button_text_color_hover=”#6eba01″ button_bg_color_hover=”rgba(0,0,0,0)” button_border_color_hover=”#6eba01″ button_border_radius_hover=”0px” button_letter_spacing_hover=”2px”][et_pb_contact_field field_id=”name” field_title=”نام و نام خانوادگی” fullwidth_field=”on” _builder_version=”4.3.4″ form_field_font=”yekan||||||||” text_orientation=”right” button_text_size__hover_enabled=”off” button_one_text_size__hover_enabled=”off” button_two_text_size__hover_enabled=”off” button_text_color__hover_enabled=”off” button_one_text_color__hover_enabled=”off” button_two_text_color__hover_enabled=”off” button_border_width__hover_enabled=”off” button_one_border_width__hover_enabled=”off” button_two_border_width__hover_enabled=”off” button_border_color__hover_enabled=”off” button_one_border_color__hover_enabled=”off” button_two_border_color__hover_enabled=”off” button_border_radius__hover_enabled=”off” button_one_border_radius__hover_enabled=”off” button_two_border_radius__hover_enabled=”off” button_letter_spacing__hover_enabled=”off” button_one_letter_spacing__hover_enabled=”off” button_two_letter_spacing__hover_enabled=”off” button_bg_color__hover_enabled=”off” button_one_bg_color__hover_enabled=”off” button_two_bg_color__hover_enabled=”off”][/et_pb_contact_field][et_pb_contact_field field_id=”Email” field_title=”آدرس ایمیل” field_type=”email” fullwidth_field=”on” _builder_version=”4.3.4″ form_field_font=”yekan|600|||||||” text_orientation=”right” button_text_size__hover_enabled=”off” button_one_text_size__hover_enabled=”off” button_two_text_size__hover_enabled=”off” button_text_color__hover_enabled=”off” button_one_text_color__hover_enabled=”off” button_two_text_color__hover_enabled=”off” button_border_width__hover_enabled=”off” button_one_border_width__hover_enabled=”off” button_two_border_width__hover_enabled=”off” button_border_color__hover_enabled=”off” button_one_border_color__hover_enabled=”off” button_two_border_color__hover_enabled=”off” button_border_radius__hover_enabled=”off” button_one_border_radius__hover_enabled=”off” button_two_border_radius__hover_enabled=”off” button_letter_spacing__hover_enabled=”off” button_one_letter_spacing__hover_enabled=”off” button_two_letter_spacing__hover_enabled=”off” button_bg_color__hover_enabled=”off” button_one_bg_color__hover_enabled=”off” button_two_bg_color__hover_enabled=”off”][/et_pb_contact_field][et_pb_contact_field field_id=”Message” field_title=”پیام شما” field_type=”text” fullwidth_field=”on” _builder_version=”4.3.4″ button_text_size__hover_enabled=”off” button_one_text_size__hover_enabled=”off” button_two_text_size__hover_enabled=”off” button_text_color__hover_enabled=”off” button_one_text_color__hover_enabled=”off” button_two_text_color__hover_enabled=”off” button_border_width__hover_enabled=”off” button_one_border_width__hover_enabled=”off” button_two_border_width__hover_enabled=”off” button_border_color__hover_enabled=”off” button_one_border_color__hover_enabled=”off” button_two_border_color__hover_enabled=”off” button_border_radius__hover_enabled=”off” button_one_border_radius__hover_enabled=”off” button_two_border_radius__hover_enabled=”off” button_letter_spacing__hover_enabled=”off” button_one_letter_spacing__hover_enabled=”off” button_two_letter_spacing__hover_enabled=”off” button_bg_color__hover_enabled=”off” button_one_bg_color__hover_enabled=”off” button_two_bg_color__hover_enabled=”off”][/et_pb_contact_field][/et_pb_contact_form][et_pb_text admin_label=”Text” _builder_version=”4.9.2″ _module_preset=”default”]

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.2″ _module_preset=”default”][et_pb_column type=”4_4″ _builder_version=”4.9.2″ _module_preset=”default”][et_pb_menu menu_style=”centered” _builder_version=”4.9.2″ _module_preset=”default” background_color=”#B3B3B3″][/et_pb_menu][/et_pb_column][/et_pb_row][/et_pb_section]