مانیتور کردن بافر در بلوک مدباس

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

مانیتور کردن بافر در بلوک مدباس

پست توسط keeia »

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

Re: مانیتور کردن بافر در بلوک مدباس

پست توسط mahdi.faani »

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

روش اول استفاده از اینستراکشن CONVERT هست
مثلا شما یک رجیستر (Word) را قصد دارید به یک INT تبدیل کنید. با استفاده از CONVERT امکان تبدیل WORD به INT رو دارید. پس از اینکه CONVERT رو به برنامه اضافه کردید اون رو با موس انتخاب کنید و در قسمت Properties تنظمیات رو به شکل مدنظرتون تغییر بدید. یک Property در این قسمت هست به نام OperationDataType. این Property نوع خروجی کانورت را مشخص میکند. مثلا اگر قصد دارید Word را به Int تبدیل کنید باید این Property را به Int تغییر بدید.

روش دوم استفاده از اینستراکشن DESERIALIZE هست. این اینستراکشن یک آرایه بیتی (AnyBit) را دریافت می کند و بر اساس نوع تگی که در خروجی اون قرار میدید خودش دیتا رو از ورودی برداشت میکنه و به فرمت مناسب در خروجی تبدیل میکنه. مثلا شما برای دریافت یک عدد اعشاری (Float) از مدباس باید 2 رجیستر را دریافت کنید. به همین ترتیب اگر عدد اعشاری از نوع Double باشد باید 4 رجیستر را دریافت کنید. با استفاده از DESERIALIZE میتونید این 2 رجیستر یا 4 رجیستر را به ترتیب به عدد اعشاری REAL یا LREAL تبدیل کنید
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
ارسال پست