اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

سوالات مربوط به برنامه نویسی محصولات PLC را در این بخش مطرح کنید
Amirjuibar
کاربر تازه وارد
کاربر تازه وارد
پست: 23
تاریخ عضویت: 15 می 2023, 17:29
محل اقامت: Tehran

اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط Amirjuibar »

سلام استاد من میخوام از خروجی انالوگ ۰تا ۱۰ ولت استفاده کنم از کدوم ایکن برای این کار توی برنامه نویسی استفاده کنم البته کنترل از طریق hmiهستش
آواتار کاربر
mahdi.faani
مدیر انجمن
مدیر انجمن
پست: 99
تاریخ عضویت: 14 می 2023, 14:39
محل اقامت: Tehran
تماس:

Re: ایکن خروجی انالوگ ۰تا ۱۰ولت

پست توسط mahdi.faani »

سلام وقت بخیر
با استفاده از اینستراکشن (instruction) به نام SCP_NORM امکان تبدیل یک بازه عددی به یک بازه عددی دیگر را خواهید داشت
این اینستراکشن در بخش monitor and control قابل دسترس هست
البته از داخل کاتالوگ هم امکان سرچ کردن و پیدا کردنش رو دارید
طبق تصویر زیر از این اینستراکشن استفاده کنید

تصویر
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
Amirjuibar
کاربر تازه وارد
کاربر تازه وارد
پست: 23
تاریخ عضویت: 15 می 2023, 17:29
محل اقامت: Tehran

Re: ایکن خروجی انالوگ ۰تا ۱۰ولت

پست توسط Amirjuibar »

مهندس میشه درمورد اینسرتراکشن scp_norm بیشتر توضیح بدین من میخوام از hmi دور یک اینورتر رو بصورت انالوگ ۰تا ۱۰ ولت کنترل کنم و از خروجی انالوگ ماژول استفاده کنم
آواتار کاربر
mahdi.faani
مدیر انجمن
مدیر انجمن
پست: 99
تاریخ عضویت: 14 می 2023, 14:39
محل اقامت: Tehran
تماس:

Re: ایکن خروجی انالوگ ۰تا ۱۰ولت

پست توسط mahdi.faani »

ببینید ارتباط با hmi به تبدیل رنج اعداد ارتباطی نداره. شما در مرحله اول باید لایه برنامه نزدیک به سخت افزار رو کامل کنید به این معنی که پی ال سی بدون حضور اچ ام آی باید بتونه کارشو انجام بده
پس در مرحله اول یک تگ بسازید به عنوان ورودی scp_norm و به ورودی INV متصل کنید
مثلا قصد دارید قدرت ۰ تا ۱۰۰ درصد رو برای ایجاد گشتاور موتور به اینورتر ارسال کنید. برای این منظور باید به IN_L و IN_H به ترتیب مقادیر ۰ و ۱۰۰ رو اعمال کنید. حالا رنج خروجی رو باید تعریف کنید. رنج خروجی آنالوگ معمولا ۰ تا ۱۰ ولت یا ۴ تا ۲۰ میلی آمپر هست که برای مثال شما باید مقادیر ۰ و ۱۰ رو به ترتیب به OUT_L و OUT_H اعمال کنید. در مرحله آخر تگ مرتبط با خروجی آنالوگ رو به OUT متصل کنید
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
Amirjuibar
کاربر تازه وارد
کاربر تازه وارد
پست: 23
تاریخ عضویت: 15 می 2023, 17:29
محل اقامت: Tehran

Re: ایکن خروجی انالوگ ۰تا ۱۰ولت

پست توسط Amirjuibar »

مهندس اینسترکشن scp_normتست گرفتم و به درستی خروجی ۰تا ۱۰ ولت رو با تعقیرات invگرفتم ولی اینم هم مثل hysteresisبا قطع enورودی ولتاژ خروجی وصل میمونه برای این مشکل چ کاری بایستی کنم بزای هیزترزیس and استفاده کردم درست شد
آواتار کاربر
mahdi.faani
مدیر انجمن
مدیر انجمن
پست: 99
تاریخ عضویت: 14 می 2023, 14:39
محل اقامت: Tehran
تماس:

Re: اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط mahdi.faani »

برای کاری که مدنظر شما هست نباید از EN و ENO استفاده کنید. این پین ها برای کنترل فرایند اجرای برنامه کاربرد دارند. وقتی EN رو 0 کنید در واقع از اجرای اون اینستراکشن دارید جلوگیری میکنید و وقتی اینستراکشن اجرا نشه طبیعی هست که خروجی هاش هم آپدیت نمیشن. یک نمونه کد در زیر پیوست کردم مشاهده بفرمایید:

تصویر

نمونه کد زیر رو هم مشاهده کنید

تصویر

هر دو برنامه دقیقا یک کار انجام می دهند. اینکه شما چه متدی برای برنامه نویسی انتخاب کنید به شرایط اون برنامه و روش های خودتون بستگی داره
مثلا برنامه اول و دوم، هردو 4 اینستراکشن دارند.
برنامه اول همیشه اینستراکشن SCP_NORM رو اجرا میکنه در حالی که برنامه دوم در شرایطی که تیغه فعال باشه SCP_NORMرو اجرا میکنه.
برنامه اول حداقل 3 اینستراکشن رو اجرا میکنه و در شرایطی که تیغه فعال باشه 4 اینستراکشن اجرا میکنه در حالی که برنامه دوم همیشه 3 اینستراکشن اجرا میکنه
هر دو برنامه یک کار انجام میدهند اما برنامه دوم حافظه کمتر و زمان کمتری از CPU مصرف میکنه.


به نام تگ ها و روند اجرای برنامه دقت کنید. از یک تگ بولین برای کنترل فعال یا غیر فعال شدن موتور استفاده شده. و از یک تگ Real برای نگهداری میزان پاور موتور. وقتی قرار هست کلا موتور رو خاموش کنید باید تگ MotorEN رو 0 کنید. با این کار مقدار خروجی آنالوگ فارغ از اینکه چه مقداری در MotorPower وجود داره، صفر میشه. همچنین برای خود اینورتر هم میتونید از تگ MotorEN برای ارسال خروجی دیجیتال به اینورتر برای فعال و غیر فعال کردن موتور استفاده کنید.

به نام تگ ها دقت کنید. بهتره نام تگ های گلوبال (Global) رو با حرف g شروع کنید. نام تگ هایی که در فضای خروجی (Q) قرار دارند رو با q شروع کنید. به همین ترتیب برای فضای I از i و فضای Local از l استفاده کنید. اینطور نامگذاری باعث افزایش خوانایی برنامه میشه و وقتی برنامه تون بزرگ شد باعث ابهام نمیشه.

همیشه سعی کنید خروجی های PLC رو فقط در یک نقطه از برنامه مقدار دهی کنید. از مقدار دهی به خروجی ها در چند نقطه مختلف و به خصوص در برنامه های Multi task اکیدا خودداری کنید.

با رعایت نکات ساده ای مثل نکات بالا میتونید برنامه های بزرگ رو به سادگی مدیریت و یا در صورت نیاز عیب یابی کنید
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
آواتار کاربر
mahdi.faani
مدیر انجمن
مدیر انجمن
پست: 99
تاریخ عضویت: 14 می 2023, 14:39
محل اقامت: Tehran
تماس:

Re: اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط mahdi.faani »

صفحه 65 از System Manual رو مطالعه بفرمایید. در خصوص کاربر پین های EN و ENO توضیح داده

تصویر
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
Amirjuibar
کاربر تازه وارد
کاربر تازه وارد
پست: 23
تاریخ عضویت: 15 می 2023, 17:29
محل اقامت: Tehran

Re: اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط Amirjuibar »

مهندس منظورتون از تگ گلوبال چیه ؟
آخرین ویرایش توسط Amirjuibar در 20 می 2023, 00:06، در مجموع 1 بار ویرایش شده است.
آواتار کاربر
mahdi.faani
مدیر انجمن
مدیر انجمن
پست: 99
تاریخ عضویت: 14 می 2023, 14:39
محل اقامت: Tehran
تماس:

Re: اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط mahdi.faani »

بر اساس استاندارد IEC61131_3 متغیر های برنامه (tag) باید در چند دسته (class) مختلف تعریف شوند. این کلاس ها دسترسی های متفاوتی جهت خواندن و نوشتن دارند و به این شکل تعریف میشن:

دسترسی عمومی (global) : این تگ ها در همه جا قابل دسترس هستند. در تمام پروگرم بلاک ها (program block یا PB) میتوانید از این تگ ها استفاده کنید. تگ هایی که در جدول تگ های PLC تعریف شوند در این دسته قرار میگیرند.

دسترسی موقت محلی (Local Temp): این کلاس فقط داخل PB ها قرار دارد و تنها در درون PB میتوانید این دسته از تگ ها را بسازید. دقت کنید که با هربار اجرای PB این تگ ها با مقدار اولیه تعریف شده ساخته می شوند و بعد از اجرای برنامه از بین می روند. این کلاس در فانکشن ها (function یا fc) یا فانکشن بلاک ها (function block یا fb) قرار دارد.

دسترسی همیشگی محلی (Local Static): این کلاس فقط داخل PB ها قرار دارد و تنها در درون PB میتوانید این دسته از تگ ها را بسازید. دقت کنید که با اجرای اولیه PB این تگ ها با مقدار اولیه تعریف شده ساخته می شوند و تا پایان حیات برنامه پی ال سی مقدار خود را حفظ میکنند و از بین نمی روند. این کلاس در ارگانایزیشن بلاک ها (organization block یا ob) یا فانکشن بلاک ها (function block یا fb) قرار دارد.

برای اطلاعات بیشتر به صفحه ۳۶ system manual پی ال سی ها مراجعه فرمایید
پیوست‌ها
Screenshot_20230519-085413_Foxit PDF.jpg
(484.27 KiB) 6 مرتبه دانلود شده
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
Amirjuybar8
کاربر تازه وارد
کاربر تازه وارد
پست: 19
تاریخ عضویت: 15 می 2023, 09:43

Re: اینستراکشن خروجی انالوگ ۰تا ۱۰ولت

پست توسط Amirjuybar8 »

مهندس سلام برنامه نوشته شده برای کنترل ولتاژ خروجی 0تا10ولتاز طریقhmiوplcتوحالت خاموش یا صفر درصد ۱.۶ولت داره و توحالت ۱۳۰درصد ولتاژ ۱۰ ولت رو میده بنظرتون مشکلش کجاست
ارسال پست