PDA

Просмотр полной версии : ОПРОС OPC по rs 485



Vitorgan
03.04.2025, 12:42
Подскажите пожалуйста, в ПЛК 110 была возможность создать RS485 с кучей переменных, создать ФБ с переменными и глобально создать
VAR_GLOBAL
OPC AT %QD6.1.0 : OPC_tegs; (обращение к блоку адресов, созданного в конфигураторе Slave)
END_VAR

И уже с помощью библиотеки общаться с OPC. Есть ли такая возможность у ПЛК73? в конфигураторе я не могу создавать таким образом переменные

melky
03.04.2025, 12:58
Почитайте РЭ, или на программирование 63/73, там есть область памяти, где все переменные, доступна для чтения групповыми запросами.
Запись вроде только через адресацию конфигуратора.

kondor3000
03.04.2025, 13:37
Подскажите пожалуйста, в ПЛК 110 была возможность создать RS485 с кучей переменных, создать ФБ с переменными и глобально создать
VAR_GLOBAL
OPC AT %QD6.1.0 : OPC_tegs; (обращение к блоку адресов, созданного в конфигураторе Slave)
END_VAR

И уже с помощью библиотеки общаться с OPC. Есть ли такая возможность у ПЛК73? в конфигураторе я не могу создавать таким образом переменные

Это совершенно разные ПЛК, области памяти Слейва и доступ к ним совершенно другие. Руководство читайте.

Vitorgan
03.04.2025, 13:50
Почитайте РЭ, или на программирование 63/73, там есть область памяти, где все переменные, доступна для чтения групповыми запросами.
Запись вроде только через адресацию конфигуратора.

да вот читаю все что только можно, спасибо за помощь, правильно ли я понимаю, что создание 4байтовых переменных я должен делать в любом из подменю(очень странно), и только в диапазоне с 82 по 287, и обязательно должен float добавлять?

melky
03.04.2025, 14:01
ну double вероятно 63/73 не поддерживает. Собственно их и ПЛК1хх вроде не поддерживают, или не все. В рамках CodeSys это LREAL

Vitorgan
03.04.2025, 14:05
нашел DWORD, как раз то что нужно, называется она только TImeP

melky
03.04.2025, 14:22
DWORD все равно 4 байта :)

kondor3000
03.04.2025, 14:33
DWORD все равно 4 байта :)

Он и хотел 4 байта, это ты про double и LREAL (8 байт) зачем то начал писать)))

Vitorgan
03.04.2025, 15:03
Товарищи благодарю за активность в теме, подскажите пожалуйста правильной дорогой ли я иду:
я должен в подменю создавать нужное количество DWORD перменных, начиная с регистра 90, и далее по списку 94, 98....
Смотрю примеры и не понимаю, каким образом завязаны переменные в подменю мною созданные, и опрос Rs-495 библиотекой, в более современных ПЛК есть логика- создана переменная в подменю RS-485, а тут в подменю конфигуратора, а Rs вкладка вообще добавить переменные нельзя, ну нет в РП об этом ничего.

kondor3000
03.04.2025, 15:22
Товарищи благодарю за активность в теме, подскажите пожалуйста правильной дорогой ли я иду:
я должен в подменю создавать нужное количество DWORD перменных, начиная с регистра 90, и далее по списку 94, 98....
Смотрю примеры и не понимаю, каким образом завязаны переменные в подменю мною созданные, и опрос Rs-495 библиотекой, в более современных ПЛК есть логика- создана переменная в подменю RS-485, а тут в подменю конфигуратора, а Rs вкладка вообще добавить переменные нельзя, ну нет в РП об этом ничего.

То что вы создаёте в конфигурации (ваши DWORD) это всё относится к ПЛК слейву. Его по этим регистрам можно опросить другим Мастером. Начиная с 90, 92, 94, 96 а не как вы пишите.
Через биб-ку ПЛК мастер, сам может опросить другие модули, там и регистры другие, задаются, по карте регистров модуля.

Vitorgan
03.04.2025, 15:31
Блин наверное я не с того начал, не пугает меня опрос модулей, пока что, модули разные опрашивал разными плк по RS))) мне надо соединиться с Universal OPC Server. так как на 73 ПЛК нет Ethernet, раньше все по TCP библиотеками делал. Сейчас встрял, так как вообще не понимаю "создание переменных-соотношение их с определенным COM"

Vitorgan
03.04.2025, 15:33
Да про 90,92,94 вы правы, описался, в голове 4 байта))))

kondor3000
03.04.2025, 15:35
Блин наверное я не с того начал, не пугает меня опрос модулей, пока что, модули разные опрашивал разными плк по RS))) мне надо соединиться с Universal OPC Server. так как на 73 ПЛК нет Ethernet, раньше все по TCP библиотеками делал. Сейчас встрял, так как вообще не понимаю "создание переменных-соотношение их с определенным COM"

Тогда и не пишите про биб-ки, создали переменные в слейве и опрашивайте его по RS232 своим ОРС сервером.
Номер СОМ порта для сервера, будет тот где стоит конвертер RS232 в компе.

Vitorgan
03.04.2025, 15:50
Тогда и не пишите про биб-ки, создали переменные в слейве и опрашивайте его по RS232 своим ОРС сервером.
Номер СОМ порта для сервера, будет тот где стоит конвертер RS232 в компе.

Да в том то и вопрос, как мне создать переменные? в submenu? потому что только там доступно добавление переменных

kondor3000
03.04.2025, 15:52
Да в том то и вопрос, как мне создать переменные? в submenu? потому что только там доступно добавление переменных

Да, просто добавляйте нужные в submenu и проставляйте адреса.
Сами submenu можно расширять другими submenu, в которые и вставлять переменные.

Vitorgan
03.04.2025, 15:55
Сами submenu можно расширять другими submenu, в которые и вставлять переменные.

Это просто для визуального удобства?

kondor3000
03.04.2025, 15:56
Это просто для визуального удобства?

Не для удобства, а из-за ограничений кол-ва переменных в одном submenu.

Vitorgan
03.04.2025, 17:24
Опрос поднял, благодарю. Только вот с адресацией что то не так, если выставляю адреса переменных DWORD 90,92,94, OPC на всех переменных покажет ошибку, если 90,94,98 то стабильно GOOD

kondor3000
03.04.2025, 17:35
Опрос поднял, благодарю. Только вот с адресацией что то не так, если выставляю адреса переменных DWORD 90,92,94, OPC на всех переменных покажет ошибку, если 90,94,98 то стабильно GOOD

Странно это, у меня в рабочих примерах с PointP ( тоже DWORD ), регистры через один 82,84,86..... 92,94 и т. д. Протокол Модбас
Тип Конфигурационный.

Vitorgan
03.04.2025, 17:50
Попробовал как у Вас, но увы...
from Device1:HOLDING_REGISTERS
[03-04-2025 17:49:29.134] TRA : Node1.Device1:Старт опроса устройства
[03-04-2025 17:49:18.759] TRA : Node1.Device1:Ошибка опроса устройства
[03-04-2025 17:49:18.759] ERR : Node1.Device1:Включен таймаут ошибки запроса 1
[03-04-2025 17:49:18.759] ERR : Device1:Ошибка выполнения команды 3 <<Unknown error 2>> в устройстве 16

Vitorgan
03.04.2025, 17:56
Разобрался, OPC пытается прочитать групповым запросом HOLDING REGISTERS, как только галку ставлю последний тег, то опрос по всем переменным GOOD

Валенок
03.04.2025, 18:10
Там string есть. Можно зараз 8 регистров сверху записывать.
А если сверху токма читают, так можно тупо все сразу прочитать, адресация 4000 с чем то, смотрите рп. ( вроде говорили уже)

Ai, Di, Out вообще нет смыслы в регистры перекладывать - они просто всегда есть и их можно зараз сверху прочитать. Как и версию, дату/время, кнопки и ещё какую то фигню

Vitorgan
03.04.2025, 20:08
Там string есть. Можно зараз 8 регистров сверху записывать.
А если сверху токма читают, так можно тупо все сразу прочитать, адресация 4000 с чем то, смотрите рп. ( вроде говорили уже)

Ai, Di, Out вообще нет смыслы в регистры перекладывать - они просто всегда есть и их можно зараз сверху прочитать. Как и версию, дату/время, кнопки и ещё какую то фигню

Очень интересно, но очень пока сложно для меня