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

Создание шаблона для применения в модуле сбора данных Modbus


Author Message
Written on: 08. 10. 2015 [07:45]
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
Здравствуйте.

Подскажите пожалуйста оптимальный способ решения задачи:

Имеется контроллер, подключенный к локальной сети и поддерживающий Modbus TCP протокол. Он занимается опросом групп локальных винтовых компрессоров по CANOpen протоколу и предоставляет в сеть объектные данные о давлении, состоянии и т.п с определенным адресным смещением, то есть компрессор 1: адрес структуры данных - регистр 0, компрессор 2 - 32, 3 - 64 и т.д. Каким образом создать универсальный шаблон для использования в модуле сбора данных Modbus, чтобы достаточно было в параметрах конфигурации логического параметра по шаблону задавать номер компрессора, а программа автоматически опрашивала необходимые регистры ПЛК и выдавала в выходные атрибуты необходимые данные?

И 2 вопрос: кроме данных с локальных компрессоров, ПЛК занимается также и предоставлением в сеть других данных с других опрашиваемых устройств. Но для всех устройств есть единые данные о сетевой конфигурации устройства, текущем состоянии обмена данными и т.п. Возможно ли их предоставить в качестве выходного объекта, общего для каждого индивидуального шаблона устройства?

Спасибо.

# rm -rf /bin/laden
Written on: 09. 10. 2015 [10:50]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 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.
Written on: 09. 10. 2015 [16:55]
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
"roman" wrote:

Т.е. подобное в модуле Siemens тут не работает, как минимум по причине отсутствия группирующей сущности. Однако можно читать структуру как RAW, через строку, а затем в скрипте из неё доставать нужное. При этом конфигурация будет заключаться в указании исключительно начала строки-структуры.

Таким образом и решил вопрос, спасибо, Роман. Единственный минус: контроллер DAQ_Modbus не учитывает количество таким образом опрошенных регистров и в статусе не происходит их увеличение.

"roman" wrote:

Предоставляйте в Объектном типе что угодно.

Аналогично, вопрос решен.

# rm -rf /bin/laden
Written on: 09. 10. 2015 [17:29]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"dudanov" wrote:

"roman" wrote:

Т.е. подобное в модуле Siemens тут не работает, как минимум по причине отсутствия группирующей сущности. Однако можно читать структуру как RAW, через строку, а затем в скрипте из неё доставать нужное. При этом конфигурация будет заключаться в указании исключительно начала строки-структуры.

Таким образом и решил вопрос, спасибо, Роман. Единственный минус: контроллер DAQ_Modbus не учитывает количество таким образом опрошенных регистров и в статусе не происходит их увеличение.

Учитывает, если конечно прямо PDU не запрашивали.

Learn, learn and learn better than work, work and work.
Written on: 10. 10. 2015 [07:48]
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
"roman" wrote:

Учитывает, если конечно прямо PDU не запрашивали.

Через PDU и запрашивал. На счёт строки будет не совсем удобно, так как для каждой структуры необходимо рассчитывать адрес при конфигурации параметра, а я сейчас реализовал шаблон, где просто указывается номер устройства, а шаблон элементарно вычисляет адрес и формирует PDU с последующей передачей его контроллеру DAQ Modbus. А реализация в OpenSCADA ведения статистики опрашиваемых таким образом регистров была бы очень полезна, тем более, что PDU для всех типов протоколов Modbus одинакова.

[This article was edited 1 times, at last 10.10.2015 at 07:52.]

# rm -rf /bin/laden



15346