PDA

Просмотр полной версии : MasterSCADA 4D OPC UA+Crevis (CoDeSys 3.5)



Yakut
25.06.2025, 19:47
Доброго времени суток, коллеги.
Есть MS4D и CoDeSys 3.5. Хочу по OPC UA передавать данные туда/сюда.
Настроил в CDS связь c физическим контроллером Crevis GN-9482, создал REAl переменные (ибо проблема только в них bool и INT работают).
Далее создал в MS4D такую же связь с контроллером по OPC UA - она есть и данные передаются из контроллера в MS4D без всяких вопросов.
Сложность возникает тогда, когда я из скады передаю данные в отладочном режиме в Дереве Системы в PLC. Они просто записываются в Выход и не записываются в само значение переменной реал и, как следствие, не пишутся в PLC.
В чём сюрприз может заключаться?:o

МихаилГл
25.06.2025, 20:15
Буквально пол часа назад читал руководство по мс4. И на глаза попалась фраза, что новый мс4 по умолчанию вместо real использует lreal, для повышения точности отображения..

1exan
25.06.2025, 20:23
Доброго времени суток, коллеги.
Есть MS4D и CoDeSys 3.5. Хочу по OPC UA передавать данные туда/сюда.
Настроил в CDS связь c физическим контроллером Crevis GN-9482, создал REAl переменные (ибо проблема только в них bool и INT работают).
Далее создал в MS4D такую же связь с контроллером по OPC UA - она есть и данные передаются из контроллера в MS4D без всяких вопросов.
Сложность возникает тогда, когда я из скады передаю данные в отладочном режиме в Дереве Системы в PLC. Они просто записываются в Выход и не записываются в само значение переменной реал и, как следствие, не пишутся в PLC.
В чём сюрприз может заключаться?:o

Раскройте выход - пока там статус не будет Good, значение не будет передаваться. Чтобы появился Good - свяжите Выход с каким-нибудь элементом (переменная, окно ввода значения)

МихаилГл
25.06.2025, 20:30
Как в этой скаде люди работают... Завтра надо начинать проект, а я как баран на нее смотрю..

Yakut
25.06.2025, 20:44
Раскройте выход - пока там статус не будет Good, значение не будет передаваться. Чтобы появился Good - свяжите Выход с каким-нибудь элементом (переменная, окно ввода значения)
Не знаю, правильно ли понял, но вывел на стартовое окно реал1. Вывел всё что есть по нему - вход выход и основная переменная. Что получилось в фото снизу.
Результат тоже на фото.

Да и с целочисленным же работает без бубенцов...

Yakut
25.06.2025, 20:48
Буквально пол часа назад читал руководство по мс4. И на глаза попалась фраза, что новый мс4 по умолчанию вместо real использует lreal, для повышения точности отображения..
Поменял на LREAL - результат тот же.

Yakut
25.06.2025, 20:48
Как в этой скаде люди работают... Завтра надо начинать проект, а я как баран на нее смотрю..

ёжики кололись и плакали, но продолжали есть кактус

1exan
26.06.2025, 04:41
Не знаю, правильно ли понял, но вывел на стартовое окно реал1. Вывел всё что есть по нему - вход выход и основная переменная. Что получилось в фото снизу.
Результат тоже на фото.

Да и с целочисленным же работает без бубенцов...

Выглядит на скринах хорошо.
А в первом посте предупреждение к непривязанным переменным в кодесисе к этим трём real переменным относится? Может это влияет?

Yakut
26.06.2025, 09:58
Выглядит на скринах хорошо.
А в первом посте предупреждение к непривязанным переменным в кодесисе к этим трём real переменным относится? Может это влияет?

ну вот как-то так

1exan
26.06.2025, 10:54
ну вот как-то так

Может в контроллере дело, как вариант попробовать на каком-нибудь эмуляторе сервера opc ua

Sergey361
26.06.2025, 10:58
Нужно запускать сторонний сервер OPC на ПК, пробовать тоже самое с ним. Тогда будет понятно, где проблема.

1exan
26.06.2025, 11:27
Попробуйте вот с этим (https://downloads.prosysopc.com/opcua/apps/JavaServer/dist/5.5.4-384/prosys-opc-ua-simulation-server-windows-x64-5.5.4-384.exe)эмулятором

Yakut
26.06.2025, 20:11
Попробуйте вот с этим (https://downloads.prosysopc.com/opcua/apps/JavaServer/dist/5.5.4-384/prosys-opc-ua-simulation-server-windows-x64-5.5.4-384.exe)эмулятором
Как у этой штуки создавать real?
Я вот думаю может попроовать создать в кодесиське с эмулятором ?
ТОлько вот в скаде какой IP прописывать в OPC UA своего компа?

Так, значение 12.0 из эмулятора в MS4D ушло, а вот значение 15.0 из Скады в эмулятор нет

1exan
27.06.2025, 05:42
Как у этой штуки создавать real?
Я вот думаю может попроовать создать в кодесиське с эмулятором ?
ТОлько вот в скаде какой IP прописывать в OPC UA своего компа?

Так, значение 12.0 из эмулятора в MS4D ушло, а вот значение 15.0 из Скады в эмулятор нет


Вот отсюда
84556

Попробовал - у меня пишет скада в эмулятор

Yakut
28.06.2025, 09:51
Вот отсюда
84556

Попробовал - у меня пишет скада в эмулятор

Значит попробовать переустановить саму скаду. А какая версия у тебя стоит?

1exan
28.06.2025, 16:43
Значит попробовать переустановить саму скаду. А какая версия у тебя стоит?

1.3.8.24611

Yakut
28.06.2025, 18:54
1.3.8.24611

У меня 1.3.5.19381

Yakut
29.06.2025, 07:38
Скачал новую версию и всё заработало..т.е. в старых версиях не работало...
И даже без создания всяких окон, переменных, что я и хотел получить.

Yakut
15.07.2025, 16:30
Тут новая задачка появилась - MasterSCADA 4D просто роняет контроллер в shutDown. Пингует до смерти. Хотя переменных всего 313 штук. Устал воевать с таймаутами. Попробовал передавать слова по протооклу modbus TCP. - работает, но очень медленно. Надо ждать когда данные запишутся в контроллер секунд 10. И не могу передать биты. ВОрды ходят хорошо.

Шпаргалка такая:
Адрес %MX200.0 = %MW100, считаем по формуле (2048+”адрес”)*16, в формулу подставляем адрес MW так как %MX200.0 => адрес =34368. %MX200.1 => 34369 (пока не получается с битами разобраться). С вордами - всё типтоп

Если вы указываете адрес, как %MX то сначала идёт номер БАЙТА, а потом номер БИТА. При этом если вы указываете номер бита 8, то он переезжает на*следующий*БАЙТ
А ворды надо к адресу добавить 16384.
С битами тоже разобрался. Надо указывать тип COILS в переменной

МихаилГл
15.07.2025, 16:56
Я вроде победил эту скаду после недели изучения. Чтоб не плодить тэги все булевы как получаемые, так и отправляемые на плк запаковал в dword. Нормально работает. С 3500 дискретных тэгов до 155 сборных ужал. Сначала в lword, который на 64 бита запаковал, но словил косяк системы, система в компоненте динамики видит только 32 бита, остальные не видит, видимо компоненты сами dword используют.. Пришлось перепаковывать. Уже столько косяков нашел за 2 недели начала работы с этой скадой, что просто ужас. У них там что, тестировщиков нету совсем..

Yakut
15.07.2025, 17:30
Я вроде победил эту скаду после недели изучения. Чтоб не плодить тэги все булевы как получаемые, так и отправляемые на плк запаковал в dword. Нормально работает. С 3500 дискретных тэгов до 155 сборных ужал. Сначала в lword, который на 64 бита запаковал, но словил косяк системы, система в компоненте динамики видит только 32 бита, остальные не видит, видимо компоненты сами dword используют.. Пришлось перепаковывать. Уже столько косяков нашел за 2 недели начала работы с этой скадой, что просто ужас. У них там что, тестировщиков нету совсем..

ТОже такого мнения, тестирование происходит за счёт покупателей...

В Codesys как запаковывать? Вдруг пригодится, а то я с ним пока не очень.

МихаилГл
15.07.2025, 17:45
peremennaya.0:= bitluboyi и так до 31 бита.

Пеоеменная это dword

melky
15.07.2025, 17:49
Они тестировщикам деньги не доплачивают... заказчики разргебают самостоятельно окольными путями. :)
отсутствие тестировщиков или малое их количество это норма...

МихаилГл
15.07.2025, 19:09
Зато когда баги побеждал такой бажиЩе нашел, что буду юзать его сам. Есди б они узнали, поседели б

melky
15.07.2025, 19:31
Делиться надо багами :)

Yakut
15.07.2025, 21:18
Зато когда баги побеждал такой бажиЩе нашел, что буду юзать его сам. Есди б они узнали, поседели б

а разве в одном сплошном баге можно найти баг? красавчег!