آدرس رجیسترهای سیستمی مثل initialو راه اندازی اولیه

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

آدرس رجیسترهای سیستمی مثل initialو راه اندازی اولیه

پست توسط keeia »

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

Re: آدرس رجیسترهای سیستمی مثل initialو راه اندازی اولیه

پست توسط mahdi.faani »

عرض ادب و احترام
برای اینکه بتوانید اقدامات مربوط به راه اندازی اولیه سیستم به طور مثال راه اندازی مدباس Server (Slave)، خواندن اطلاعات ذخیره شده در حافظه ماندگار پی ال سی (Non volatile memory) ، بررسی شرایط فعلی فرایند هنگام RUN شدن CPU و یا انجام سایر اقدامات لازم در Startup دو راه دارید:

1- استفاده از Organization Block مخصوص به اینکار به نام StartupProgram
برای اینکه بتوانید یک Startup Program بسازید در قسمت Program Blocks یک پروگرم بلاک جدید ایجاد کنید و در دیالوگ باز شده StartupProgram را انتخاب کنید. مانند تصویر زیر:

تصویر

هر برنامه ای که درون این پروگرم بلاک نوشته شده باشد ، هنگام RUN شدن CPU و فقط یکبار و قبل از هر برنامه دیگری اجرا خواهد شد.
پیشنهاد می شود در مواقعی که از حافظه Retain استفاده میکنید یا در مواقعی که ورودی سخت افزاری Emergency Stop را فعال کرده اید، علاوه بر اجرای برنامه های مربوط به راه اندازی سیستم برنامه های دیگری به منظور بررسی وضعیت سخت افزار مانند چک کردن ولتاژ باتری بک آپ، چک کردن وضعیت ورودی دیجیتال Emergency Stop ، چک کردن اینکه CPU در حالت COLD یا WARM ران شده باشد و... را در این پروگرم بلاک قرار دهید.

2- استفاده از تگ InitialCall
برخی از Organization Blockها که به صورت دائمی اجرا میشوند مانند CyclicProgram، PeriodicInterrupt، EmergencyStopProgram و TimeOfDayInterrupt در لیست تگ های لوکال خوشان یک تگ به نام InitialCall دارند. مقدار این این تگ در اولین سیکل اجرای آن True خواهد بود و پس از آن همیشه مقدار False را خواهد داشت.

تصویر

در صورتی که نیاز داشته باشید در برنامه اصلی اجرای اولیه CPU را بررسی کنید، میتوانید از این تگ استفاده کنید. دقت داشته باشید که اولین سیکل اجرا برای هر OrganizationBlock ممکن است متفاوت باشد. به طور مثال فرض کنید در برنامه یک CyclicProgram و یک TimeOfDayInterrupt دارید. به محض Run شدن، سی پی یو وارد CyclicProgram خواهد شد و اولین سیکل را اجرا خواهد کرد. اما TimeOfDayInterrupt یک ثانیه بعد اجرا خواهد شد و بنابراین اولین سیکل اجرا برای آن پروگرم بلاک یک ثانیه پس از ران شدن سی پی یو اتفاق خواهد افتاد.
پیوست‌ها
Capture.PNG
(13.87 KiB) هنوز دانلود نشده
Capture.PNG
(18.57 KiB) هنوز دانلود نشده
آموزش ارسال پست در انجمن : viewtopic.php?t=31
قوانین انجمن : viewtopic.php?t=23
ارسال پست