Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

On Modelling of Coordinated Behavior of PLC Sensors

329 views

Published on

Egor Kuzmin, Dmitriy Ryabukhin and Valery Sokolov, Yaroslavl State University, Yaroslavl

Published in: Science
  • Be the first to comment

  • Be the first to like this

On Modelling of Coordinated Behavior of PLC Sensors

  1. 1. Î ìîäåëèðîâàíèè ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. ßðÃÓ èì. Ï.Ã. Äåìèäîâà ßðîñëàâëü, 2014 Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  2. 2. Ïðîãðàììèðóåìûé ëîãè÷åñêèé êîíòðîëëåð (ÏËÊ) 2/15 Îñîáåííîñòè ÏËÊ. Âõîäû: äàò÷èêè, êîíöåâûå âûêëþ÷àòåëè, êíîïêè, òåðìîìåòðû . . . . Âûõîäû: ýëåêòðîìàã. ðåëå, ïðèâîäû, ñâåòîâûå ñèãíàëèçàòîðû . . . . Ðàáî÷èé öèêë: ñ÷èòûâàíèå âõîäîâ, âûïîëíåíèå ïðîãðàììû, âûñòàâëåíèå âûõîäîâ. Ïðèìåíåíèå: áûòîâûå ïðèáîðû ïðîìûøëåííîå ïðîèçâîäñòâî. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  3. 3. Ïðîãðàììû ÏËÊ è îñîáåííîñòè âåðèôèêàöèè 3/15 Äâà òèïà çàäà÷. 1 Àíàëîãîâûå. Îáåñïå÷åíèå óñòîé÷èâîñòè. Ïðîãðàììèðîâàíèå ôîðìóë. Äåäóêòèâíûé àíàëèç. 2 Äèñêðåòíûå. Ëîãè÷åñêîå óïðàâëåíèå. Êîíå÷íîå ïðîñòðàíñòâî ñîñòîÿíèé. Ìåòîä ïðîâåðêè ìîäåëè. Îòñóòñòâèå öèêëîâ (êðîìå ðàáî÷åãî). Ïîíèìàíèå øèðîêèì êðóãîì ñïåöèàëèñòîâ. Âûñîêàÿ öåíà ïðîãðàììíîé îøèáêè. ßçûêè ïðîãðàììèðîâàíèÿ ñòàíäàðòà ÌÝÊ 61131-3. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  4. 4. Ïîäõîäû ê ïîñòðîåíèþ è âåðèôèêàöèè ÏËÊ-ïðîãðàìì 4/15 Öåëü ðàáîòû: îïèñàíèå òåõíîëîãèè ïðîãðàììèðîâàíèÿ ÏËÊ äëÿ çàäà÷ ëîãè÷åñêîãî óïðàâëåíèÿ. Äâà ïîäõîäà ê àíàëèçó ïðîãðàìì ÏËÊ: Ïðÿìàÿ òðàíñëÿöèÿ ñ ÿçûêîâ ñòàíäàðòà ÌÝÊ â èíòåðôåéñíûå ÿçûêè âåðèôèêàòîðîâ (SMV, SPIN, CPNTools...) Ïðîãðàììèðîâàíèå è âåðèôèêàöèÿ ïî ñïåöèôèêàöèè. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  5. 5. Ìîäåëü ïðîãðàììû ÏËÊ 5/15 Ñîñòîÿíèå ìîäåëè: âåêòîð çíà÷åíèé âõîäîâ + âåêòîð çíà÷åíèé âûõîäîâ è âíóòðåííèõ ïåðåìåííûõ. Ïåðåõîäû ïî ñîñòîÿíèÿì: îäèí ïðîõîä ðàáî÷åãî öèêëà. Óñëîâèÿ äëÿ ïðîãðàììíûõ ïåðåìåííûõ: 1 Íå áîëåå îäíîãî èçìåíåíèÿ çíà÷åíèÿ êàæäîé ïåðåìåííîé çà îäèí ïðîõîä ðàáî÷åãî öèêëà ÏËÊ. 2 Çíà÷åíèå ïåðåìåííîé èçìåíÿåòñÿ â îäíîì ìåñòå. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  6. 6. Òðàíñëÿöèÿ 6/15 LTL-ñïåöèôèêàöèÿ: GX( V_V ) OldValCond ^ FiringCond ^ V=NewValExpr ) GX( V_V ) OldValCond0 ^FiringCond0 ^V=NewValExpr 0) ST-êîä: IF OldValCond AND FiringCond THEN V := NewValExpr ; ELSIF OldValCond0 AND FiringCond0 THEN V := NewValExpr 0; END_IF. SMV-ìîäåëü: case{ next(OldValCond ) next(FiringCond ) : next(V) := next(NewValExpr ); next(OldValCond0) next(FiringCond0) : next(V) := next(NewValExpr 0); default : next(V) := V; }. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  7. 7. Òðàíñëÿöèÿ 7/15 LTL-ñïåöèôèêàöèÿ: GX(:_V ^ V ) FiringCond ) GX(_V ^ :V ) FiringCond0 ) ST-êîä: IF NOT _V AND FiringCond THEN V := 1 ; ELSIF _V AND FiringCond0 THEN V := 0; END_IF. SMV-ìîäåëü: case{ V next(FiringCond ) : next(V) := 1; V next(FiringCond0) : next(V) := 0; default : next(V) := V; }. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  8. 8. Ñîãëàñîâàííîå ïîâåäåíèå äàò÷èêîâ 8/15 1 Ñîñòîÿíèå äðóãèõ äàò÷èêîâ, åñëè äàò÷èê S ãîðèò (ìîë÷èò). G( X( S) ) Cond1 ) G( X(:S) ) Cond10 ) 2 Ïðè÷èíû òîãî, ÷òî äàò÷èê S ñðàáîòàë (ïîãàñ). G( :S ^ X( S) ) Cond2 ) G( S ^ X(:S) ) Cond20 ) 3 Çàëèïàíèå äàò÷èêà. G( G( S) ) Cond3 ) G( G(:S) ) Cond30 ) Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  9. 9. Óñòàíîâêà äëÿ ïðèãîòîâëåíèÿ ñìåñåé 9/15 Кл0 Кл1 ДУ2 ДУ1 ДУ0 ПМ Бак 1 Бак 2 Кл2 Смесь Компоненты в резервуаре Бак 1 пуст Бак 2 пуст ДРП Кл3 Вкл Аварийный клапан Разливной клапан ДБ1 ДБ2 Резервуар Уровень 2 Уровень 1 Уровень 0 Приготовл. Правильн. Испорчена Компонент 1 Компонент 2 Кл. 1 Мешалка Включена Работает Кл. 2 Привод Ошибка Клапаны Кл1 Кл2 Кл0 Кл. 0 Ав. клап. Схема установки Панель управления Входы ПЛК Выходы Переключатели Приводы / лампы Кл. 0 SBPVlv открыть клапан 0 открыть клапан 0 Кл0 PVlv открыть клапан 1 1 1 2 Кл1 Vlv1 Кл. 1 SBVlv1 открыть клапан 1 2 Кл. 2 SBVlv2 открыть клапан 2 3 Привод SBMtr запустить мешалку 5 Датчики ДУ0 LS0 датчик уровня 0 8 ДУ1 LS1 датчик уровня 1 9 ДУ2 LS2 датчик уровня 2 10 открыть клапан 2 3 Кл2 Vlv2 запустить мешалку 5 Вкл ПМ Mtr ДРП MS датчик работы привода 11 открыть клапан 3 4 Кл3 EVlv Ав. клап. SBEVlv открыть клапан 3 4 ДБ1 TS1 датчик уровня бака 1 6 ДБ2 TS2 датчик уровня бака 2 7 Состояния / лампы смесь приготовлена Смесь MxIsFin MxIsPrp MxIsBad смесь правильная 6 7 смесь испорчена 8 в смеси есть компон. 2 10 в смеси есть компон. 1 9 Комп. 1 C1InMx Ошибка MtrErr сигнал ошибки 11 Комп. 2 C2InMx Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  10. 10. Ïðèìåðû îáùåïðîãðàììíûõ ñâîéñòâ 10/15 Âñåãäà, êîãäà îòêðûò ðàçëèâíîé êëàïàí, ñìåñü ÿâëÿåòñÿ ïðèãîòîâëåííîé. G(PVlv ) MxIsFin) Åñëü ñìåñü èñïîð÷åíà, òî êëàïàíû 1, 2 è ðàçëèâíîé êëàïàí äîëæíû áûòü çàêðûòû. G(MxIsBad ) :PVlv ^ :Vlv1 ^ :Vlv2) Åñëè ñìåñü ïåðåøëà â ñîñòîÿíèå èñïîð÷åíà, çíà÷èò áûë îòêðûò àâàðèéíûé êëàïàí. G(:MxIsBad ^ X(MxIsBad) ) EVlv) Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  11. 11. Ïðèìåð LTL-òðåáîâàíèé ê ñîãëàñîâàííîìó ïîâåäåíèþ äàò÷èêîâ 11/15 LTL-òðåáîâàíèÿ äëÿ äàò÷èêà ïåðâîãî óðîâíÿ LS1: 1-ÿ ãðóïïà G( X(LS1) ) X(LS0)) G(:X(LS1) ) :X(LS2)) 2-ÿ ãðóïïà G(:LS1 ^ X(LS1) ) LS0 ^ X(LS0) ^ :LS2 ^ :X(LS2) ^ (Vlv1 ^TS1 _ Vlv2 ^TS2) ) G( LS1 ^ :X(LS1) ) LS0 ^X(LS0) ^:LS2 ^ :X(LS2) ^ (EVlv _ PVlv) ) Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  12. 12. Ïðèìåð LTL-òðåáîâàíèé ê ñîãëàñîâàííîìó ïîâåäåíèþ äàò÷èêîâ 12/15 LTL-òðåáîâàíèÿ äëÿ äàò÷èêà ïåðâîãî óðîâíÿ LS1: 3-ÿ ãðóïïà G(G( LS1) ) F(G:(EVlv _ PVlv))_ G((EVlv _ PVlv) ) F(Vlv1 ^ TS1 _ Vlv2 ^ TS2))) G(G(:LS1) ) F(G:(Vlv1 ^ TS1 _ Vlv2 ^ TS2))_ G((Vlv1 ^ TS1 _ Vlv2 ^ TS2) ) F(EVlv _ PVlv))) Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  13. 13. Îñîáåííîñòè ïîäõîäà 13/15 Ñòàäèÿ íàïèñàíèÿ êîäà ïðîãðàììû çàêàí÷èâàåòñÿ, êàê òîëüêî äëÿ êàæäîé ïåðåìåííîé, ÿâëÿþùåéñÿ âûõîäîì èëè âñïîìîãàòåëüíîé âíóòðåííåé ïåðåìåííîé, ñîçäàíà ñïåöèôèêàöèÿ. Âîçìîæíîñòü ïðèìåíåíèÿ ìåòîäà ïðîâåðêè ìîäåëè (Model Checking) äëÿ àíàëèçà êîððåêòíîñòè ïðîãðàìì. LTL-ïðåäñòàâëåíèå ñîãëàñîâàííîãî ïîâåäåíèÿ äàò÷èêîâ. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  14. 14. Çàêëþ÷åíèå 14/15 Àïðîáàöèÿ: 12 òèïè÷íûõ çàäà÷ ëîãè÷åñêîãî óïðàâëåíèÿ (äëÿ ÏËÊ ñ 30 âõîäàìè è âûõîäàìè â ñðåäíåì). Âðåìÿ âåðèôèêàöèè: íåñêîëüêî ñåêóíä íà ïåðñîíàëüíîì êîìïüþòåðå. Îãðàíè÷åíèÿ íà âåðèôèêàöèþ: SMV ïîääåðæèâàåò äî 59 áèíàðíûõ ïåðåìåííûõ. Òèïè÷íûå ñâîéñòâà: âûïîëíåíèå êîìàíä, ñîáëþäåíèå òåõíîëîãè÷åñêîãî ïðîöåññà, áåñïåðåáîéíàÿ ðàáîòà ñèñòåìû. Äàëüíåéøåå ðàçâèòèå: ðàçðàáîòêà êîìïëåêñà ïîñòðîåíèÿ è âåðèôèêàöèè ÏËÊ-ïðîãðàìì. Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ
  15. 15. Áëàãîäàðèì çà âíèìàíèå! Êóçüìèí Å. Â., Ðÿáóõèí Ä. À., Ñîêîëîâ Â. À. Ìîäåëèðîâàíèå ñîãëàñîâàííîãî ïîâåäåíèÿ ÏËÊ-äàò÷èêîâ

×