سخت افزار(10SX)
- دارای 2 ورودی آنالوگ و 2 خروجی آنالوگ می باشد.ورودی های آنالوگ با علامت A/D و خروجی ها با علامت D/A معرفی شده اند.
این کارت توانایی دارد که 2 ورودی جریانی یا ولتاژی آنالوگ را دریافت کند و 2 خروجی جریانی یا ولتاژی را برای ما تامین کند.
- دارای 4 ورودی و 2 خروجی دیجیتال می باشد.
- دو عدد سون سگمنت وجود دارد که توسط دو رجیستر خاص داخل برنامه نویسی، می توانیم مقدار یک آنالوگ و یا هر مقداری را نمایش دهیم.
- این PLC می تواند از سمت راست به آن کارت اضافه شود.
- در مدل پیشرفته تر این PLC، ماژول مدل 20SX2 را داریم که می توانیم از سمت چپ هم به آن ماژول اضافه کنیم.
- بر روی این PLC باتری قرار دارد که قابل تعویض می باشد.
- این PLC نسبتا قدرتمند است و دارای RTC داخلی می باشد.
- برای کاربردهایی که ورودی و خروجی دیجیتال و آنالوگ لازم داریم و فضای کمی داریم،
قابل استفاده است.
- بر روی لیبل این محصول، DVP 10SX11R عدد 11بیانگر این است که PLC از نوع 24v است.
تولید ولتاژ 0-10v
در این قسمت قصد داریم شما را با PLC، 10SX آشنا کنم و از طریق آن، ولتاژ 0-10v را تولید کنیم. جهت تولید ولتاژ 0-10v و یا خواندن ولتاژ و جریان، باید یک سری رجیسترهای خاص را یاد بگیریم.
- رجیستر D1056، مقدار لحظه ای ورودی آنالوگ کانال صفر را می خواند.
- رجیستر D1057، مقدار لحظه ای ورودی آنالوگ در کانال یک را می خواند.
- رجیستر D1116، مقدار دیجیتال خروجی آنالوگ را ذخیره می کند؛ یعنی از طریق ریختن عدد داخل این رجیستر، شما میتوانید ولتاژ یا جریان تولید کنید.
- رجیسترD1117، مقدار دیجیتال خروجی آنالوگ کانالیک را ذخیره می کند.
می دانیم DVP10SX با رزولوشن 12 bit است. 12bit به میزان پله های تولید ولتاژ یا جریان و میزان پله های خواندن ولتاژ یا جریان اشاره دارد؛ دقت این کار 120v است. این 12bit تاثیر مستقیمی روی عدد -2000-2000 دارد. اگر 2 را به توان 12 برسانیم، به عدد 4096 می رسیم، حالا 96 را درنظر نمیگیریم. پس با تقسیم این عدد بر 2 به عدد 2000 می رسیم. حالا چرا منفی و مثبت، به خاطر اینکه ولتاژ +10 و -10 ولت می باشد. در قسمت ورودی جریانی، رزولوشن کارت، 11bit است. اگر 2 را به توان 11 برسانیم می شود 2048، با تقسیم بر 2، تقریبا 1000 است که از 24 صرفنظر کردیم. ملاحظه می کنید که -20-20 mA به صورت -1000-1000 می باشد؛ اما در قسمت خروجی ملاحظه می کنید که رزولوشن 12bit است. پس با این اوصاف، برای تولید ولتاژ 0-10v باید عددی بین 0-2000v داخل رجیستر D1116 بریزیم.
می خواهیم ولتاژ 0-10 v را تولید کنیم. این ولتاژ جهت ارسال به ورودی آنالوگ یک اینورتر جهت کنترل دور موتور استفاده می شود؛ همچنین این ولتاژ می تواند به تمام تجهیزاتی که در اتوماسیون استفاده می شود و نیاز به ولتاژ0-10v جهت کنترل آنالوگ دارد، استفاده می شود. به چه صورت؟ ما برای اینکه بتوانیم ولتاژ تولید کنیم، برنامه ای مشابه این برنامه که در ادامه می آید، می نویسیم.
همانطور که از شکل ظاهری 10SX مشخص است. PLC ما دارای ورودی و خروجی است. ورودی های v0، +I0+ و v1،+I1+ است. ما اگر یک ورودی برای مثال ولتاژی داشته باشیم، کافی است که قسمت مثبت سنسور آنالوگ خود را به v0+ و قسمت com یا منفی را به com پی ال سی وصل کنیم.
اینجا می خواهیم ولتاژ 0-10v را تولید کنیم، کافیست برنامه زیر را بنویسیم.
به راحتی با ریختن عدد 2000 در داخل رجیستر D1116 مقدار 10v را تولید می کنیم. برای تولید 5v کافی است عدد 1000 را بریزیم. پس اینجا مشاهده می کنید که ما بازه ی خیلی زیادی و با پله های بسیار ریزی جهت تولید ولتاژ 0-10v داریم. شما قادر هستید که مثلا عدد 1152 را داخل رجیستر D1116 بریزید. با یک نسبت بندی می توانیم مقدار ولتاژ تولیدی در خروجی را محاسبه کنیم. برای مثال، برای ریختن عدد 1152 کافی است شما عدد 10 را تقسیم بر 2000 کنید و سپس ضربدر 1152 کنید. ولتاژ 5.76 از خروجی آنالوگ است. بین پایه های v0+ خروجی و com تولید می شود. از طریق این ولتاژ می توان دور یک موتور را از طریق اینورتر کنترل کرد.
به محیط برنامه نویسی مراجعه می کنیم، مدل PLC را 10SX انتخاب می کنیم. ld m0 و سپس move k2000 d1116 را وارد می کنیم. ملاحظه می شود که برنامه به ما نشان می دهد که این رجیستر به کانال صفر خروجی مربوط است. برنامه را Code می کنیم و داخل PLC واقعی می ریزیم. مشاهده می شود که با تحریک m0، عدد 2000 داخل رجیستر D1116 ریخته شد.
همانطور که ملاحظه می کنید، ولت متر را بین V0+ خروجی و com قرار می دهیم. ولت متر عدد 9 را نمایش می دهد، در واقع باید عدد 9.8 نمایش داده شود، چون ولت متر دقت ندارد، عدد 9 نمایش داده می شود. چرا 9.8 ؟ به خاطر نویزی که در سیم بندی وجود دارد. حالا از این ولتاژ تولید شده، می توان جهت راه اندازی اینورتر استفاده کرد که در بخش های بعدی از طریق همین ولتاژ، فرکانس اینورتر را تغییر خواهیم داد.
در این قسمت قصد داریم که ولتاژ تولید شده در قسمت قبلی که از طریق انتقال عدد 2000 به رجیستر D1116 بود را از طریق ورودی PLC 10SX بخوانیم. از این طریق شما می توانید مطمئن شوید که اولاَ خروجی آنالوگ شما درست برنامه نویسی شده و از نظر سخت افزاری مشکلی ندارد و آن را به ورودی سخت افزاری اعمال می کنیم تا مطمئن شوید ورودی شما نیز مشکلی ندارد. همانطور که در قسمت قبل توضیح دادیم، جهت استفاده از خروجی و ورودی کافی است عددی را داخل رجیستر D1116 بریزید و از طریق رجیستر D1056 آن را بخوانیم؛ یعنی می خواهیم از کانال صفر خروجی، ولتاژی را تولید کنیم و از طریق کانال صفر ورودی، همان ولتاژ را بخوانیم. به چه صورت؟ یک خط به برنامه اضافه می کنیم.
ld m0 و سپس دستور mov d1056 d0 به عبارتی مقدار خوانده شده در ورودی کانال صفر که 1056 است را به داخل رجیستر دلخواهم بریز. برنامه را code می کنیم و داخل PLC می ریزیم. مشاهده می شود که به علت نویز موجود در سیم بندی یک عددی بین -1 و -2 تغییر می کند. فعلا در خروجی چیزی نریخته ایم. با فعال شدن m0، عدد 2000را داخل d1116 ریختیم و از طریق ورودی آن را خواندیم.
چطور سیم بندی کردیم؟ همانطور که در تصویر مشاهده می کنید، از کانال صفر خروجی، از قسمت v0+ یک سیم به v0+ ورودی وصل کرده ایم؛ یعنی ولتاژ را از طریق کانال صفر ورودی خواندیم. در این بخش، شما با نحوه تولید ولتاژ آنالوگ و خواندن آن آشنا می شویم.
در برنامه ی نوشته شده، عدد k2000 می تواند متغیر باشد. کافی است به جای 2000، یک رجیستر تعریف کنیم؛ برای مثال d2 . برنامه را code می کنیم و داخل PLC می ریزیم. کلیک راست می کنیم، در حالت آنلاین change present value را انتخاب می کنیم و مقدار رجیستر را برای مثال k500 می دهیم. با یک تناسب بندی می بینیم که به ازاء k500 ، ولتاژ 2.5 ولت تولید می شود چون به ازاء k2000 ولتاژ 10v تولید می شود. شما می توانید رجیستر d2 را داخل HMI فراخوانی کنید و با وارد کردن مقدار عددی در رجیستر d2 مقدار ولتاژ خروجی را تغییر دهید. این ولتاژ خروجی را به عنوان ورودی آنالوگ یک اینورتر استفاده کنید و از طریق HMI، سرعت موتور را تغییر دهید. ملاحظه می کنید که عدد 500، mov شد و در ورودی آنالوگ عدد 498 نمایش داده می شود. به علت نویز، اعداد 498،497،499 خوانده می شود.
در ادامه، با نحوه مستقیم سیم بندی خروجی به اینورتر و پارامترهای اینورتر آشنا می شویم.
تولید جریان 0-20 mA و خواندن آن
یکی از مزایای بزرگ کارت 10SX این است که جهت تولید ولتاژ یا جریان، نیازی ندارید که برنامه را عوض کنید. در این قسمت قصد داریم از طریق تغییر سیم بندی، جریان 0-20mA را تولید کنیم و از طریق ورودی، جریان را بخوانیم. همانطور که در جدول زیر ملاحظه می کنید، ما یک ولتاژی را داریم بین 0 تا 20mA تولید می کنیم، می خواهیم آن را از طریق ورودی بخوانیم. به این نکته توجه کنید، گفتیم که ورودی آنالوگ جریانی کارت 10SX، 11 بیتی است یعنی عدد 20mA را 1000 می شناسد و صفر را صفر، ولی خروجیش عدد 2000 را 20mA می شناسد.
وایرینگ را به صورتی که در تصویر زیر می بینید، انجام داده ایم.
از I0+ خروجی آنالوگ، با سیم به v0+ و I0+ متصل کرده ایم؛ این یعنی در PLC ها، اکثر کارت های آنالوگ جهت خواندن جریان میلی آمپر ورودی باید ولتاژ و جریان آن ها، با هم دیگر jump شده باشد.
برنامه به چه صورت نوشته می شود؟ اگر در قسمت برنامه نویسی مشاهده کنید، یک مقداری به d2 اختصاص می دهیم. برای مثال: k1500 وارد می کنیم. k1500 تقریبا برای ما 15mA را تولید می کند چون به ازاء 0-2000، 0-20mA تولید می کند. در ورودی آنالوگ که جریان را می خواند، عدد 750 را می بینیم. چرا؟ چون رزولوشن تولید 12 بیتی و رزولوشن خواندن کارت قسمت جریانی، 11 بیتی است. M0 را on می کنیم. ملاحظه می شود که 15mA تولید می شود. 15mA در تولید 1500 دیده می شود ولی در قسمت خواندن، تقریبا نصف آن یعنی 750 دیده می شود.
نکته ای که باید توجه کرد، این است که اگر به ورودی جریانی با رزولوشن بهتری احتیاج دارید، باید از کارت 04 A/D که 4 تا ورودی آنالوگ دارد و رزولوشن بالاتری دارد، استفاده نمایید ولی 10SX رزولوشن ورودی جریانی پایین تری دارد.
استفاده از 7Segment بر روی PLC
در این قسمت قصد داریم که شما را با نحوه ی استفاده از سون سگمنت که روی PLC های 10SX قرار دارد، آشنا کنیم. سون سگمنت تعبیه شده بر روی PLCهای 10SX که دارای دو عدد سون سگمنت است می تواند هر مقداری که را دوست داشته باشید را به شما نمایش دهد. به چه صورت؟ کافی است که عددی را به داخل رجیستر D1196 که رجیستر نمایش محتوای این سون سگمنت است، mov کنیم و انتقال دهیم یا مقدار یک تایمر را انتقال دهیم و یا هر عددی که دوست داریم که برای اپراتور نمایش دهیم.
چند فلگ خاص داریم که نحوه ی کارکرد آنها را در ادامه توضیح می دهیم:
- فلگ M1196 که اگر فعال باشد، عدد نمایش داده شده بر روی سون سگمنت در مبنای هگزادسیمال نمایش داده می شود. اگر غیرفعال باشد بر مبنای دسیمال یا عدد خودمون نمایش داده می شود.
- فلگ M1197 اگر فعال باشد، سون سگمنت در قسمت راست خودش، یک point دارد، آن را فعال می کند.
- اگر فلگ M1198 فعال شود، سون سگمنت سمت چپ، ممیز خودش را روشن می کند.
در ادامه برنامه را می نویسیم.
برای مثال می خواهیم زمانی که M0 فعال شد، عدد 12 به داخل رجیستر 1196 که رجیستر مخصوص به این سون سگمنت هاست، انتقال پیدا کند. در خط بعدی با فعال شدن M1، M1196 جهت هگزا دسیمال نمایش دادن و یا دسیمال نمایش دادن است. در ادامه، با فعال شدن M2 ممیز سون سگمنت راست فعال می شود و با فعال شدن M3 ممیز سون سگمنت چپ فعال می شود. برنامه را code می کنیم و داخل PLC می ریزیم. با زدن M0 ، عدد 12 داخل رجیستر mov شده و مقدارش روی سون سگمنت نمایش داده می شود. با زدن M1، M1196 فعال می شود و عدد 0C که بیانگر عدد 12 در مبنای هگزادسیمال است، نمایش داده می شود. با فعال شدن M2، M1197 فعال می شود و ممیز بین دو سون سگمنت فعال می شود. با فعال شدن M1198 ممیز سمت راست فعال می شود که ما بیشتر با ممیز بین دوتا سون سگمنت کار داریم.
از این سون سگمنت می توانید جهت نمایش دادن مقدار یک ارور استفاده کنید. می توانید تمامی ارورها را به صورت تک تک به داخل رجیستر D1196، mov کنید و زمانی که هر ارور فعال شد، عدد مربوط به آن ارور نمایش داده می شود، بدین طریق سیستم را راحت تر عیب یابی می کنید.