Отличительной особенностью визуализации CODESYS является возможность ее
отображения на нескольких клиентах визуализации одновременно. Например, представим себе
следующую ситуацию: на производственной линии некоторой фабрики используется панельный
контроллер с поддержкой web-визуализации. Оператор производственной линии взаимодействует
с экраном контроллера (таргет-визуализацией) – наблюдает за значениями параметров
технологического процесса, переключает экраны, вводит значения уставок и т. д. В это же время с
web-визуализацией контроллера работают один или даже несколько сотрудников отдела
аналитики – формируют отчеты, просматривают историю сообщений и т. д. В этот момент на линии
завершается изготовление очередной партии продукции, и программа контроллера должна
уведомить об этом оператора – например, отобразив диалоговое окно с соответствующим
сообщением. Должно ли «всплыть» это же окно у аналитиков? Ответ, конечно, может отличаться в
зависимости от конкретной ситуации – но вообще, вряд ли аналитики заинтересованы в подобного
рода оперативной информации; их, скорее, интересуют показатели оптимальности работы
оборудования, количество произведенной продукции за определенный интервал времени,
длительность периодов простоя линии из-за поломок и т. д. Соответственно, возникает задача не
просто «сделать что-то из кода», а «сделать что-то из кода для конкретного клиента
визуализации». Для этого нужно как-то идентифицировать конкретного клиента – и именно для
этого используется функциональный блок FbIterateClients. Получив информацию о клиентах
визуализации – можно по каким-то критериям (например, типу визуализации или IP-адресу
устройства, на котором открыта web-визуализация) выделить среди них интересующих вас и
выполнить для этих какое-то действие с помощью одного из блоков библиотеки (например,
FbOpenDialog).
Спасибо, во вступлении прям 100% то, что нужно. Будем смотреть





Ответить с цитированием
