در پروژه های انجام شده با LOGO 8 Siemens ، گاهی نیاز به میانگین گیری بین چند سنسور دما وجود دارد .
یک سالن مرغدتری ، گلخانه ، سردخانه و . . . را در نظر بگیرید .
به دلایلی ممکن است شما از چند سنسور در فاصله های مشخص استفاده کنید .
و بخواهید عملکرد بخشی از پروژه به برآیند دماها وابسته باشد .
حال ممکن است بخشی از سالن که در آن مثلا سنسور 3 قرار دارد ، استفاده نشده باشد .
پس نباید از مقدار سنسور 3 ، در برآیند دما استفاده کرد . و یا عدد یک سنسور بسیار بزرگ یا کوچک است .
این یعنی این سنسور خراب است و نباید در میانگین گیری دخالت داده شود .
البته تغییرات کم مقدار دما با کالیبره کردن سنسور قابل حل است .
اما وقتی کمتریم مقدار دمایی که ممکن است برای شما اتفاق بیافتد 15 درجه مثبت است ،
دیدن دمای منفی 30 درجه غیر منطقی است .
و یا وقتی سیم سنسور قطع شود یک عدد خیلی بزرگ یا کوچک نمایش داده میشود .
پس با ایجاد محدوده دما میشه تا حدودی به سلامت سنسور پی برد .
گرفتن میانگین با یک تابع ریاضی به راحتی قابل انجام است . ولی وقتی شما سنسورها رو با هم جمع و تقسیم بر 3 می کنید .
در صورت خرابی یک سنسور آن عدد بزرگ یا کوچک در حال جمع شدن سنسور های سالم است .
مرحله اول این است که باید مقدار سنسور خراب صفر در نظر گرفته شود و در مرحله بعد به جای تقسیم بر 3 ، ما تقسیم بر 2 را داشته باشیم .
ابتدا یک Analog Input برای هر یک از سنسور ها وارد برنامه می کنیم .
در Select Hardware و در قسمت I/O seeting و onboard AI seeting تعداد ورودی های آنالوگ بر روی cpu رو مشخص می کنیم .
برای مثال ما چون قصد داریم از دو ماژول AM2RTD استفاده کنیم . پس نیازی به وروید های ولتاژی روی CPU نداریم .
پس آنرا بر روی صفر می گذاریم . در این حالت Analog Input اول ماژول AI1 خواهد بود .
اگر از آنالوگ های روی LOGO 12/24 استفاده می کردیم ، آدرس اولین سنسور PT100 ، ورودی آنالوگ AI5 میشد .
در ادامه می توان از Analog Amplifier استفاده کرد و نوع سنسور رو مشخص کرد . حتی مقدار Gain و Offset را دستی تغییر داد .
سپس برای جلوگیری از پرش های لحظه ای دما ، از Average value استفاده کرد .
تعداد و زمان نمونه برداری قابل تنظیم است . هر چه تعداد بیشتر باشد ، پرش لحظه ای دما کمتر به چشم خواهد آمد .
هر چه زمان بیشتر باشد ، تغییرات تاخیر بیشتری خواند داشت .
در ادامه برای مشخص کردن محدوده قابل قبول سنسور ، از استفاده کردیم .
برای مثال بازه Off را 1000 و بازه On را منف 100 در نظر گرفتیم .
از آنجایی که دمای خوانده شده توسط ماژول PT100 ضربدر 10 است .
پس در Analog threshold trigger از یک رقم اعشار استفاده می کنیم . و به جای منفی 10 درجه منفی 100 .
و به جای 100 درجه 1000 وارد می کنیم .
حال اگر ما در بازه منفی 10 تا 100 درجه باشیم خروجی خواهیم داشت .
از این خروجی به همراه یک گیت AND در یک تایمر استفاده می کنیم .
این کار به این منظور انجام میشود که در لحظه اول ممکن است کمی زمان نیاز باشد که دما خوانده شود .
با این تایمر این زمان به ماژول دما و سنسور داده میشود .
از گیت AND هم برای فرمان دادن دستی جهت استفاده از سنسور مورد نظر در برآیند استفاده می کنیم .
یعنی اگر حتی سنسور مثلا 2 در بازه قابل قبول باشد ، اما اگر ورودی استفاده از این سنسور در برآیند فعال نباشد ،
در میانگین گیری استفاد نخواهد شد .
چطور ؟
کافیست خروجی تایمر به EN تابع ریاضی داده شود . اگر OFF باشد ، مقدار خروجی تابع ریاضی صفر خواهد شد .
تا اینجا توانستیم مقدارسنسور مشکل دار رو صفر کنیم . اگر از عدد ثابت 3 برای میانگین استفاده شود ، کار خراب خواهد شد .
از کانتر برای محاسبه تعداد سنسور سالم استفاده می کنیم .
اگر خروجی دیجیتال فعال باشد ، مقدار کانتر یک و NOT آن کانتر را ریست می کند .
حال کافیست 1 های کانتر ها را با هم جمع کنیم .
و در تابع ریاضی میانگین ، مجموع کانتر ها را به پایه V4 برآیند وصل کنیم .
با این کار متناسب با تعداد سنسور های سالم ، تقسیم انجام میشود .
اگر هیچ سنسوری در مدار نباشد نتیجه برآیند عدد بزرگی خواهد شد
که دوباره می توان با استفاده از یک Analog threshold trigger ، و تنظیم مقدار 1000 برای روشن و 999 برای خاموش
یک خروجی را به عنوان خطا یا آلارم روشن کرد .
برای نمایش حالت چشمک زن می توان از تایمر Asynchronous Pulse Generator استفاده کرد .
همچنین با I/O status name ، بروز خطا رو بر روی Message texts نمایش داد .