در پی ال سی S7-1200 زیمنس ، اگر از انکودر استفاده کنیم .
و بخواهیم نقطه ای را به عنوان صفر یا هومینگ Homing در نظر بگیریم .
هر گونه تغییر در جهت مثبت یا منفی باید باعث شود ، با زدن شستی هومینگ ، انکودر به نقطه صفر برگردد .
حال برای برنامه نویسی چنین پروژه ای ، در ابتدا از HSCرا تعریف می کنیم .
در تابع CTRL-HSC برای صفر کردن مقدار انکودر که در آدرس ID1000 قرار دارد .
حافظه بیتی به CV اختصاص می دهیم .
ولی چون میخواهیم با فعال کردن آن مقدار ID1000 صفر شود ، حافظه ای به NEW-CV اختصاص نمی دهیم .
و میگذاریم همان مقدار صفر بماند . حالا با فعال کردن BIT CV مقدار ID1000 صفر میشود .
اینجا میشه نقطه صفر ما . سپس ممکن است انکودر به سمت افزایش یا کاهش تغییر موقعیت بدهد .
در نهایت ممکن است عدد اش مثلا مثبت 5000 یا منفی 7500 باشد .
کافیست در OB1 از دو شرط بزرگتر و کوچکتر برای فعال کردن Q ها استفاده کنیم .
اگر مقدار ID1000 بزرگتر از صفر باشد ، Q برگشت فعال میشود مثلا Q0.1
و اگر مقدار ID1000 کوچکتر از صفر باشد ، Q رفت فعال میشود مثلا Q0.0
حالا کافیست برای Counter value equal to reference value یک OB سخت افزاری تعریف کنیم .
با رسیدن مقدار انکودر یعنی ID1000 به عدد NEW-RV ، وقفه سخت افزاری مورد نظر اجرا میشود .
حالا مقدار مورد نظر چند است . صفر . پس برای NEW-RV هم نیاز نیست حافظه ای در نظر گرفته شود .
چون این مقدار صفر را نمیخواهیم تغییر دهیم . پس برای RV هم در تابع CTRL-HSC نیاز به تعریف BIT نیست .
با زدن شستی HOMING مثلا M0.1 ، برنامه مقایسه اجرا میشود . خروجی مورد نظر فعال و
از مقدار عددی انکودر کاسته میشود . تا به صفر برسد . حالا OB40 اجرا میشود .
در آنجا خروجی ها ریست میشود و همچنین مموری هومینگ . چون دیگه نیازی به فعال بودن آن نیست .
حالا اگر شما بخواهید به جای برگشت به نقطه صفر به موقعیت مثلا 100 مثبت یا منفی برگردید .
کافیست در NEW-RV مقدار 100 یا منفی 100 ریخته شود .