صفحه 1 از 1

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

ارسال شده: 24 می 2023, 17:33
توسط keeia
باسلام
لطفا نحوه نمایش آنلاین داده های دریافتی از مدباس را در بافر آرایه ای BUFFER توضیح دهید
با تشکر

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

ارسال شده: 24 می 2023, 19:06
توسط 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 تبدیل کنید