EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Как организована передача сообщений (алармов, предупреждений и т.п.) с PLC в скаду OpenSCADA?


Author Message
Written on: 02. 12. 2015 [13:25]
rockshox
Сергей Краев
Topic creator
registered since: 02.12.2015
Posts: 4
Роман, скажите, как реализовали обмен сообщениями от PLC и скады? Ведь цикл контроллера 10-20мс, а скада под виндой явно медленнее опрашивает PLC.....Если работали со Step7, то есть функции SFB35 (alarm_8p, передача 8 сообщений в скаду ) и SFB37 (AR_SEND, передача архива сообщений), а у Вас как это реализовано? Вы набиваете в PLC в какой-то блок DB все сообщения, а скада с помощью функций libnodave читает их, так что-ли?
Written on: 02. 12. 2015 [13:57]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rockshox" wrote:

Роман, скажите, как реализовали обмен сообщениями от PLC и скады? Ведь цикл контроллера 10-20мс, а скада под виндой явно медленнее опрашивает PLC.....Если работали со Step7, то есть функции SFB35 (alarm_8p, передача 8 сообщений в скаду ) и SFB37 (AR_SEND, передача архива сообщений), а у Вас как это реализовано? Вы набиваете в PLC в какой-то блок DB все сообщения, а скада с помощью функций libnodave читает их, так что-ли?

Да, я Вам говорил, всё через DB или Вы в документации что-то другое видели?

P.S. Не пишите сюда вопросы персонально на меня иначе я не буду отвечать, поскольку это фактически персональные консультации!

Learn, learn and learn better than work, work and work.
Written on: 02. 12. 2015 [21:51]
rockshox
Сергей Краев
Topic creator
registered since: 02.12.2015
Posts: 4
То что через DB сообщения появляются "наверху" это понятно из документации, я имел ввиду как организовано взаимодействие "запись -чтение"? Как Вы уходите от конфликтной ситуации? Скада и контроллер, как я понимаю, работают в асинхронном режиме, т.е. контроллер пихает появившиеся события в DB-блок (размер которого, очевидно, ограничен), а скада из этого блока их забирает. Но, допустим, в блок контроллер накидал события/сообщения и взвёл некий флаг в 1 (данные можно забирать), скада читает этот флаг и "увидев" 1 начинает считывать сообщения из блока и в какой-то момент пропадает связь между контроллером и скадой (свич отвалился, компьютер перегружается на котором вертится скада и т.п.). Как Вы обрабатываете эту ситуацию? Ведь к тому моменту, когда появится связь, контроллер накидает в блок (исходя из того что он ограничен по размеру - то он закольцован) кучу новых событий (которые перезатрут старые но ещё не прочитанные скадой) и откуда Ваша скада "знает" с какой позиции в блоке читать?
Written on: 02. 12. 2015 [22:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rockshox" wrote:

То что через DB сообщения появляются "наверху" это понятно из документации, я имел ввиду как организовано взаимодействие "запись -чтение"? Как Вы уходите от конфликтной ситуации? Скада и контроллер, как я понимаю, работают в асинхронном режиме, т.е. контроллер пихает появившиеся события в DB-блок (размер которого, очевидно, ограничен), а скада из этого блока их забирает. Но, допустим, в блок контроллер накидал события/сообщения и взвёл некий флаг в 1 (данные можно забирать), скада читает этот флаг и "увидев" 1 начинает считывать сообщения из блока и в какой-то момент пропадает связь между контроллером и скадой (свич отвалился, компьютер перегружается на котором вертится скада и т.п.). Как Вы обрабатываете эту ситуацию? Ведь к тому моменту, когда появится связь, контроллер накидает в блок (исходя из того что он ограничен по размеру - то он закольцован) кучу новых событий (которые перезатрут старые но ещё не прочитанные скадой) и откуда Ваша скада "знает" с какой позиции в блоке читать?

Никак, потому как у меня нет таких задач и необходимости держать нарушения и сообщения на стороне ПЛК фирмы Siemens в принципе.

Learn, learn and learn better than work, work and work.
Written on: 02. 12. 2015 [22:06]
rockshox
Сергей Краев
Topic creator
registered since: 02.12.2015
Posts: 4
"roman" wrote:

Никак, потому как у меня нет таких задач и необходимости держать нарушения и сообщения на стороне ПЛК в принципе.
Всё ясно, хотя я ожидал другого ответа. Удачи!
Written on: 03. 12. 2015 [08:13]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rockshox" wrote:

"roman" wrote:

Никак, потому как у меня нет таких задач и необходимости держать нарушения и сообщения на стороне ПЛК в принципе.
Всё ясно, хотя я ожидал другого ответа. Удачи!

По теме можно подумать как-будто у Вас ПЛК это исключительно Сименс и на нём свет клином сошёлся при этом без понимания и осознания того, что это самые закрытые ПЛК и на них подобный подход используется далеко не только у меня, хотя я с ними уже лет десять как не работаю, и в первую очередь из-за исключительной закрытости.

В тоже время на ПЛК, основанных на OpenSCADA, можно и часто прозрачно держатся архивы нарушений, сообщений и значений со шлюзованием их на АРМ.

Learn, learn and learn better than work, work and work.
Written on: 03. 12. 2015 [18:00]
rockshox
Сергей Краев
Topic creator
registered since: 02.12.2015
Posts: 4
"roman" wrote:

как-будто у Вас ПЛК это исключительно Сименс и на нём свет клином сошёлся
Да, исключительно Siemens, поскольку на металлургическом заводе, на котором я работаю, автоматизация полностью на "плечах" у PLC Siemens, и ничего не могу с этим поделать:)
"roman" wrote:

это самые закрытые ПЛК
Ну у меня нет оснований Вам в этом не доверять, поэтому с этим с Вами соглашусь. А по поводу того закрытые они или не закрытые ПЛК - какая разница, важно лишь-то, что те решения, которые у сименса есть, работают безукоризненно, это факт! который подтвержается многолетней практикой их использования.
"roman" wrote:

В тоже время на ПЛК, основанных на OpenSCADA, можно и часто прозрачно держатся архивы нарушений, сообщений и значений со шлюзованием их на АРМ.
Что значит прозрачно держатся? Вы мне в позапрошлом ответе дали понять, что решения о сохранении сообщений (в ПЛК) при нештатных ситуация (потеря общения между ПЛК и OpenSCAD'ой) нет. Или я что-то упустил?
Written on: 04. 12. 2015 [18:43]
fido_max
Maxim Kochetkov
Contributor
registered since: 28.10.2010
Posts: 129
"rockshox" wrote:

Да, исключительно Siemens, поскольку на металлургическом заводе, на котором я работаю, автоматизация полностью на "плечах" у PLC Siemens, и ничего не могу с этим поделать:)

Сочувствую! :-)
"rockshox" wrote:

Ну у меня нет оснований Вам в этом не доверять, поэтому с этим с Вами соглашусь. А по поводу того закрытые они или не закрытые ПЛК - какая разница, важно лишь-то, что те решения, которые у сименса есть, работают безукоризненно, это факт! который подтвержается многолетней практикой их использования.

А закрытость встает боком тогда, когда оно вдруг начинает работать не так, как ты задумывал, а объяснить и понять это нет никакой возможности, т.к. что у него там внутри происходит - никому не известно. Или другой момент - нужно реализовать экзотическую фичу/подключить хитрое устройство, а в ответ слышишь: у нас поддержка таких устройств отсутствует, извините. Ни производитель помочь не может, ни ты сам реализовать не можешь.
"rockshox" wrote:

Что значит прозрачно держатся? Вы мне в позапрошлом ответе дали понять, что решения о сохранении сообщений (в ПЛК) при нештатных ситуация (потеря общения между ПЛК и OpenSCAD'ой) нет. Или я что-то упустил?

Это в случае если на ПЛК в качестве рантайма работает OpenSCADA.
Written on: 14. 12. 2015 [13:16]
Specar
Александр Антуганов
registered since: 04.07.2014
Posts: 20
скада под виндой

я что то пропустил ?

и в какой-то момент пропадает связь между контроллером и скадой


караул просто, вот у меня все плк сименс в кольце и БД с данными считывают панели управления сименс и винтек ну и опенскада конечно.

это самые закрытые ПЛК

а S1200 4 ревизии и S1500 вообще бида.

Ведь цикл контроллера 10-20мс


разве цикл не 150мс по умолчанию ?



11051