صفحه 1 از 2

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

ارسال شده: 16 می 2023, 14:47
توسط Amirjuibar
سلام استاد من میخوام از خروجی انالوگ ۰تا ۱۰ ولت استفاده کنم از کدوم ایکن برای این کار توی برنامه نویسی استفاده کنم البته کنترل از طریق hmiهستش

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

ارسال شده: 16 می 2023, 17:08
توسط mahdi.faani
سلام وقت بخیر
با استفاده از اینستراکشن (instruction) به نام SCP_NORM امکان تبدیل یک بازه عددی به یک بازه عددی دیگر را خواهید داشت
این اینستراکشن در بخش monitor and control قابل دسترس هست
البته از داخل کاتالوگ هم امکان سرچ کردن و پیدا کردنش رو دارید
طبق تصویر زیر از این اینستراکشن استفاده کنید

تصویر

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

ارسال شده: 16 می 2023, 19:39
توسط Amirjuibar
مهندس میشه درمورد اینسرتراکشن scp_norm بیشتر توضیح بدین من میخوام از hmi دور یک اینورتر رو بصورت انالوگ ۰تا ۱۰ ولت کنترل کنم و از خروجی انالوگ ماژول استفاده کنم

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

ارسال شده: 16 می 2023, 20:21
توسط mahdi.faani
ببینید ارتباط با hmi به تبدیل رنج اعداد ارتباطی نداره. شما در مرحله اول باید لایه برنامه نزدیک به سخت افزار رو کامل کنید به این معنی که پی ال سی بدون حضور اچ ام آی باید بتونه کارشو انجام بده
پس در مرحله اول یک تگ بسازید به عنوان ورودی scp_norm و به ورودی INV متصل کنید
مثلا قصد دارید قدرت ۰ تا ۱۰۰ درصد رو برای ایجاد گشتاور موتور به اینورتر ارسال کنید. برای این منظور باید به IN_L و IN_H به ترتیب مقادیر ۰ و ۱۰۰ رو اعمال کنید. حالا رنج خروجی رو باید تعریف کنید. رنج خروجی آنالوگ معمولا ۰ تا ۱۰ ولت یا ۴ تا ۲۰ میلی آمپر هست که برای مثال شما باید مقادیر ۰ و ۱۰ رو به ترتیب به OUT_L و OUT_H اعمال کنید. در مرحله آخر تگ مرتبط با خروجی آنالوگ رو به OUT متصل کنید

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

ارسال شده: 16 می 2023, 21:48
توسط Amirjuibar
مهندس اینسترکشن scp_normتست گرفتم و به درستی خروجی ۰تا ۱۰ ولت رو با تعقیرات invگرفتم ولی اینم هم مثل hysteresisبا قطع enورودی ولتاژ خروجی وصل میمونه برای این مشکل چ کاری بایستی کنم بزای هیزترزیس and استفاده کردم درست شد

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

ارسال شده: 16 می 2023, 22:58
توسط 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 اکیدا خودداری کنید.

با رعایت نکات ساده ای مثل نکات بالا میتونید برنامه های بزرگ رو به سادگی مدیریت و یا در صورت نیاز عیب یابی کنید

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

ارسال شده: 16 می 2023, 23:03
توسط mahdi.faani
صفحه 65 از System Manual رو مطالعه بفرمایید. در خصوص کاربر پین های EN و ENO توضیح داده

تصویر

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

ارسال شده: 19 می 2023, 08:34
توسط Amirjuibar
مهندس منظورتون از تگ گلوبال چیه ؟

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

ارسال شده: 19 می 2023, 10:05
توسط 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 پی ال سی ها مراجعه فرمایید

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

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