Просмотр полной версии : Передача данных из СПК110 в SCADA и обратно по MODBUS TCP
Здравствуйте коллеги!!!
Столкнулся с такой проблемой.
Для передачи данных типа REAL разбиваем на 2 слова помещаем в holding-регистры и отправляем в SCADA в нужный тег.
А как реализовать обратный процесс через тот же самый тег?
МихаилГл
25.09.2024, 19:38
Ну не в те же, а в область инпут регистров скорее.
Что за скада? ОРС используете?
Скада - ASIX, OPC не используем.
МихаилГл
25.09.2024, 19:45
Скада - ASIX, OPC не используем.
Если в ней встроен механизм работы с модбас регистрами, то в плк должна быть область инпут регистров, куда вы и должны записывать требуемый тег. Если в плк в свойствах регистров установите галочку "запись" (Для содесиса версии 3.5.16 и выше), то сможете и перезаписывать этот тег из контроллера при необходимости.
У меня такая история с типом REAL. Если передаю данные типа WORD через 1 holding-регистр, работает в обоих направлениях без input-регистра.
МихаилГл
25.09.2024, 19:52
А орс ua есть в скаде? Там проще. В плк нужно будет только установить тип переменной на прием, на запись или на прием и запись...
МихаилГл
25.09.2024, 19:58
OPC UA нет.
https://owen.ru/forum/archive/index.php/t-39129.html
Уже увидел в истории)
Ну с инпут регистрами же работает, как я понял. А это как бы правильное направление.
InputRegisters - только чтение
Должны быть HoldingRegisters, чтобы была запись.
Запись Real это два регистра. Либо Scada сама понимает, что раз Real, то будет выбрана соответствующая команда, либо выбрать самим 0x10 и записывать 2-а регистра
Для передачи данных типа REAL разбиваем на 2 слова помещаем в holding-регистры и отправляем в SCADA в нужный тег.
Вы именно на СПК это делаете, т.е. SCADA у Вас выступает как ведомое? Ну, тогда функцией 3 читать оттуда же, куда пишете.
Хотя, с моей т.з., логичнее это делать как раз на стороне SCADA - и читать, и писать.
МихаилГл
26.09.2024, 07:42
Если в ней встроен механизм работы с модбас регистрами, то в плк должна быть область инпут регистров, куда вы и должны записывать требуемый тег. Если в плк в свойствах регистров установите галочку "запись" (Для содесиса версии 3.5.16 и выше), то сможете и перезаписывать этот тег из контроллера при необходимости.
InputRegisters - только чтение
Должны быть HoldingRegisters, чтобы была запись.
Запись Real это два регистра. Либо Scada сама понимает, что раз Real, то будет выбрана соответствующая команда, либо выбрать самим 0x10 и записывать 2-а регистра
Извиняюсь, перепутал холдинг и инпут... Давно свой проект не открывал, и по памяти думал что у меня инпут вверху списка а холдинг внизу. Оказалось наоборот.
PS Тем более у регистров временного хранения по умолчанию IW, а у входных QW.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot