Повідомлення створено: 08. 10. 2015 [07:45]
|
dudanov
Sergey Dudanov
Автор теми
Зареєстрован(а) с: 14.08.2013
Повідомлення: 26
|
Здравствуйте.
Подскажите пожалуйста оптимальный способ решения задачи:
Имеется контроллер, подключенный к локальной сети и поддерживающий Modbus TCP протокол. Он занимается опросом групп локальных винтовых компрессоров по CANOpen протоколу и предоставляет в сеть объектные данные о давлении, состоянии и т.п с определенным адресным смещением, то есть компрессор 1: адрес структуры данных - регистр 0, компрессор 2 - 32, 3 - 64 и т.д. Каким образом создать универсальный шаблон для использования в модуле сбора данных Modbus, чтобы достаточно было в параметрах конфигурации логического параметра по шаблону задавать номер компрессора, а программа автоматически опрашивала необходимые регистры ПЛК и выдавала в выходные атрибуты необходимые данные?
И 2 вопрос: кроме данных с локальных компрессоров, ПЛК занимается также и предоставлением в сеть других данных с других опрашиваемых устройств. Но для всех устройств есть единые данные о сетевой конфигурации устройства, текущем состоянии обмена данными и т.п. Возможно ли их предоставить в качестве выходного объекта, общего для каждого индивидуального шаблона устройства?
Спасибо.
# rm -rf /bin/laden
|
Повідомлення створено: 09. 10. 2015 [10:50]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"dudanov" wrote:
Имеется контроллер, подключенный к локальной сети и поддерживающий Modbus TCP протокол. Он занимается опросом групп локальных винтовых компрессоров по CANOpen протоколу и предоставляет в сеть объектные данные о давлении, состоянии и т.п с определенным адресным смещением, то есть компрессор 1: адрес структуры данных - регистр 0, компрессор 2 - 32, 3 - 64 и т.д. Каким образом создать универсальный шаблон для использования в модуле сбора данных Modbus, чтобы достаточно было в параметрах конфигурации логического параметра по шаблону задавать номер компрессора, а программа автоматически опрашивала необходимые регистры ПЛК и выдавала в выходные атрибуты необходимые данные?
Согласно документации:
При формировании шаблона, для логического типа параметра данного контроллера, не нужно учитывать формат ссылки шаблона, поскольку он не используется и может быть опущен.
Т.е. подобное в модуле Siemens тут не работает, как минимум по причине отсутствия группирующей сущности. Однако можно читать структуру как RAW, через строку, а затем в скрипте из неё доставать нужное. При этом конфигурация будет заключаться в указании исключительно начала строки-структуры.
"dudanov" wrote:
И 2 вопрос: кроме данных с локальных компрессоров, ПЛК занимается также и предоставлением в сеть других данных с других опрашиваемых устройств. Но для всех устройств есть единые данные о сетевой конфигурации устройства, текущем состоянии обмена данными и т.п. Возможно ли их предоставить в качестве выходного объекта, общего для каждого индивидуального шаблона устройства?
Предоставляйте в Объектном типе что угодно.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 09. 10. 2015 [16:55]
|
dudanov
Sergey Dudanov
Автор теми
Зареєстрован(а) с: 14.08.2013
Повідомлення: 26
|
"roman" wrote:
Т.е. подобное в модуле Siemens тут не работает, как минимум по причине отсутствия группирующей сущности. Однако можно читать структуру как RAW, через строку, а затем в скрипте из неё доставать нужное. При этом конфигурация будет заключаться в указании исключительно начала строки-структуры.
Таким образом и решил вопрос, спасибо, Роман. Единственный минус: контроллер DAQ_Modbus не учитывает количество таким образом опрошенных регистров и в статусе не происходит их увеличение.
"roman" wrote:
Предоставляйте в Объектном типе что угодно.
Аналогично, вопрос решен.
# rm -rf /bin/laden
|
Повідомлення створено: 09. 10. 2015 [17:29]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"dudanov" wrote:
"roman" wrote:
Т.е. подобное в модуле Siemens тут не работает, как минимум по причине отсутствия группирующей сущности. Однако можно читать структуру как RAW, через строку, а затем в скрипте из неё доставать нужное. При этом конфигурация будет заключаться в указании исключительно начала строки-структуры.
Таким образом и решил вопрос, спасибо, Роман. Единственный минус: контроллер DAQ_Modbus не учитывает количество таким образом опрошенных регистров и в статусе не происходит их увеличение.
Учитывает, если конечно прямо PDU не запрашивали.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 10. 10. 2015 [07:48]
|
dudanov
Sergey Dudanov
Автор теми
Зареєстрован(а) с: 14.08.2013
Повідомлення: 26
|
Через PDU и запрашивал. На счёт строки будет не совсем удобно, так как для каждой структуры необходимо рассчитывать адрес при конфигурации параметра, а я сейчас реализовал шаблон, где просто указывается номер устройства, а шаблон элементарно вычисляет адрес и формирует PDU с последующей передачей его контроллеру DAQ Modbus. А реализация в OpenSCADA ведения статистики опрашиваемых таким образом регистров была бы очень полезна, тем более, что PDU для всех типов протоколов Modbus одинакова.
[Повідомлення редагувалось 1 раз(ів), останній раз 10.10.2015 в 07:52.]
# rm -rf /bin/laden
|