CODESYS форум
https://forum-ru.codesys.com/

передача 16-ти и 32-х битных переменных по модбас.
https://forum-ru.codesys.com/viewtopic.php?f=1&t=2053
Страница 1 из 1

Автор:  NachRad [ Ср мар 08, 2017 8:58 pm ]
Заголовок сообщения:  передача 16-ти и 32-х битных переменных по модбас.

Тут такая штука. переменные типа DWORD не передаются по модбас. в то время, как 1-регистовые работают на чтение и запись. в итоге оставил передачу только 2-х регистровых значений: в программе переменные заполняются, значения в них меняются, но при опросе - все адреса содержат нули.
вот так организованна передача данных из массива по регистрам:

PROGRAM MB_SERVER_PRG
VAR
.......
MBSlaveImage : ARRAY [0..1] OF MB_RTU_SIMPLE_SLAVE_DATA_DESCR :=
(*(eType := MBS_holding_REGISTER, wItemsCount:=82, wMbOffset:=0 ),*)
(eType := MBS_input_REGISTER, wItemsCount:=30, wMbOffset:=0 ),
(eType := MBS_Coil, wItemsCount:=2, wMbOffset:=0 );

END_VAR

-------------------------------------------------------------------------------------------------------------------

IF finit THEN

(*MBSlaveImage[0].DataAddr := ADR(awSlaveRegisters[0]);*)
MBSlaveImage[0].DataAddr := ADR(awSlaveRegistersD[0]);
MBSlaveImage[1].DataAddr := ADR(abySlaveCoils[0]);

END_IF
...............

использую СРМ713, связь пытаюсь установить через NIM742.

Страница 1 из 1 Часовой пояс: UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/