Dear Edwin , many thanks for the answer!
Yes, I have Auto-restart connection'.
I would like to add that I connect arduino and pi through the USB .
Do you have any other solutions?
My configuration
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I reinstalled the program and made the settings a second time.
No changes, when the program is compiled, everything works, but if you reboot the Arduino or restart the pi, the connection is not restored
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
add Modbus_Slave_Com_port (the name of the modbus slave in the device tree)
to the watchwindow and check there additional Information on the connection while you are online (maybe diable autorestart for one try)
to see the problem.
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I understand the reason why I do not turn on the modbus RTU after rebooting
If I write FALSE ( m_slaveEnabled ) , then everything starts to work
How can I do this automatically in the program and can I do it in a CFC ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
Hi,
not sure how we could help without checking this online....
BR
Edwin
Hi
I do not see any problems for implementing this, I can give you access to teamviewer .Tell me when you are comfortable ?
Just attach the project, please see there may be an error in my settings
Hi Ernest,
guess this is a slave problem?
Because seems no to resposnse in case of the restart isn't it?
Could you increase this timeout?
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2018-03-26
Originally created by: Viacheslav Mezentsev
Если не удастся решить проблему, то можно использовать функциональные блоки из библиотеки IoDrvModbus напрямую, без устройства в дереве проекта. Библиотека содержит два функциональных блока для работы в режиме modbus rtu master: ModbusRequest и ModbusRequest2. Их использование более прозрачное, чем этот странный драйвер Modbus от 3S.
Я приложил пример проекта на CFC как можно использовать фб ModbusRequest для чтения дискретных выходов (Codesys 3.5.10.x).
Edwin Schwellinger hat geschrieben:
Hi Ernest,
guess this is a slave problem?
Because seems no to resposnse in case of the restart isn't it?
Could you increase this timeout?
BR
Edwin
Hi Edwin
For the test, I connect the arduino (slave) to the OPC server and left all the settings as were. Everything works and if I reboot the Arduino while running, then the connection to the server is automatically restored.
I increased the timeout of the response, as a result, I see that the error about the loss of communication is triggered with misconception but I do not see that the master at that time is polling the slave.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Viacheslav Mezentsev hat geschrieben:
Если не удастся решить проблему, то можно использовать функциональные блоки из библиотеки IoDrvModbus напрямую, без устройства в дереве проекта. Библиотека содержит два функциональных блока для работы в режиме modbus rtu master: ModbusRequest и ModbusRequest2. Их использование более прозрачное, чем этот странный драйвер Modbus от 3S.
Я приложил пример проекта на CFC как можно использовать фб ModbusRequest для чтения дискретных выходов (Codesys 3.5.10.x).
Привет
Огромное спасибо что ответили
Мучаюсь с этой проблемой уже месяц , перепробовал практически все варианты что нашел на этом форуме
Честно говоря я нашел как можно возобновить связь после перезагрузки , но я не смог сделать это в программе так как не могу найти связь с ( m_slaveEnabled ) .
Вот ссылка на видео https://www.youtube.com/watch?v=jz6ZYWJpHtw m
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2018-03-26
Originally created by: Viacheslav Mezentsev
Обычно функциональные блоки имеют дискретные входы и выходы общего назначения, типа xEnable, xReset, xError, xBusy, xDown и т.п. Так вот, если нужно обновить состояние какого-то блока, то пользоваться нужно каким-то из этих входов. Я бы попробовал Modbus_Slave_COM_Port.xReset := true, если количество запросов с ошибкой превысило какое-то число (попробовать установить в true по условию 1 раз). Т.е. нужно добавить счётчик и следить за установкой xError, причём не в каждом цикле, а именно отслеживать, что произошла ошибка таймаута (истекло время ожидания ответа).
Внутренний член "класса" m_slaveEnabled напрямую скорее всего не доступен, т.к. управление им не удобно из таких языков как CFC. Сброс может происходить косвенным образом, с использованием указанных выше дискретных входов.
Идентификатор Modbus_Slave_COM_Port является экземпляром драйвера устройства, т.е., другими словами, это экземпляр специального функционального блока. Он доступен для того, чтобы программист мог работать с устройством "напрямую". Я никогда не работал с этими устройствами, т.к. предпочитаю синхронный обмен по протоколу Modbus с использованием своих функций и функциональных блоков. Может быть вместо Modbus_Slave_COM_Port нужно будет сбросить Modbus_Master_COM_Port, посмотрев его свойства в online.
П.С. Можете приложить скетч Arduino, я могу посмотреть в чём может быть дело.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
After rebooting Raspberry pi, the modbus rtu connection is not restored .
Raspberry pi master , arduino slave
How to solve a problem ?
Hi,
check this 'Auto-restart connection':
BR
Eewin
Dear Edwin , many thanks for the answer!
Yes, I have Auto-restart connection'.
I would like to add that I connect arduino and pi through the USB .
Do you have any other solutions?
My configuration
I reinstalled the program and made the settings a second time.
No changes, when the program is compiled, everything works, but if you reboot the Arduino or restart the pi, the connection is not restored
Hi,
add Modbus_Slave_Com_port (the name of the modbus slave in the device tree)
to the watchwindow and check there additional Information on the connection while you are online (maybe diable autorestart for one try)
to see the problem.
BR
Edwin
Dear Edwin
I understand the reason why I do not turn on the modbus RTU after rebooting
If I write FALSE ( m_slaveEnabled ) , then everything starts to work
How can I do this automatically in the program and can I do it in a CFC ?
Hi,
not sure how we could help without checking this online....
BR
Edwin
Hi
I do not see any problems for implementing this, I can give you access to teamviewer .Tell me when you are comfortable ?
Just attach the project, please see there may be an error in my settings
Best regards
Ernest
for_test.project [161.89 KiB]
Hi Ernest,
guess this is a slave problem?
Because seems no to resposnse in case of the restart isn't it?
Could you increase this timeout?
BR
Edwin
Originally created by: Viacheslav Mezentsev
Если не удастся решить проблему, то можно использовать функциональные блоки из библиотеки IoDrvModbus напрямую, без устройства в дереве проекта. Библиотека содержит два функциональных блока для работы в режиме modbus rtu master: ModbusRequest и ModbusRequest2. Их использование более прозрачное, чем этот странный драйвер Modbus от 3S.
Я приложил пример проекта на CFC как можно использовать фб ModbusRequest для чтения дискретных выходов (Codesys 3.5.10.x).
RTUReadCoilsAsync.project [136.12 KiB]
RTUReadCoilsAsync.pdf [56.79 KiB]
Hi Edwin
For the test, I connect the arduino (slave) to the OPC server and left all the settings as were. Everything works and if I reboot the Arduino while running, then the connection to the server is automatically restored.
I increased the timeout of the response, as a result, I see that the error about the loss of communication is triggered with misconception but I do not see that the master at that time is polling the slave.
Привет
Огромное спасибо что ответили
Мучаюсь с этой проблемой уже месяц , перепробовал практически все варианты что нашел на этом форуме
Честно говоря я нашел как можно возобновить связь после перезагрузки , но я не смог сделать это в программе так как не могу найти связь с ( m_slaveEnabled ) .
Вот ссылка на видео https://www.youtube.com/watch?v=jz6ZYWJpHtw m
Originally created by: Viacheslav Mezentsev
Обычно функциональные блоки имеют дискретные входы и выходы общего назначения, типа xEnable, xReset, xError, xBusy, xDown и т.п. Так вот, если нужно обновить состояние какого-то блока, то пользоваться нужно каким-то из этих входов. Я бы попробовал Modbus_Slave_COM_Port.xReset := true, если количество запросов с ошибкой превысило какое-то число (попробовать установить в true по условию 1 раз). Т.е. нужно добавить счётчик и следить за установкой xError, причём не в каждом цикле, а именно отслеживать, что произошла ошибка таймаута (истекло время ожидания ответа).
Внутренний член "класса" m_slaveEnabled напрямую скорее всего не доступен, т.к. управление им не удобно из таких языков как CFC. Сброс может происходить косвенным образом, с использованием указанных выше дискретных входов.
Идентификатор Modbus_Slave_COM_Port является экземпляром драйвера устройства, т.е., другими словами, это экземпляр специального функционального блока. Он доступен для того, чтобы программист мог работать с устройством "напрямую". Я никогда не работал с этими устройствами, т.к. предпочитаю синхронный обмен по протоколу Modbus с использованием своих функций и функциональных блоков. Может быть вместо Modbus_Slave_COM_Port нужно будет сбросить Modbus_Master_COM_Port, посмотрев его свойства в online.
П.С. Можете приложить скетч Arduino, я могу посмотреть в чём может быть дело.
Я буду вам премного благодарен..
Я проверял ардуино в качестве слейва в OPC сервере от Инсат - все работает
Настройки COM порта в Raspberry :
[SysCom]
Linux.Devicefile=/dev/ttyUSB
portnum := COM.SysCom.SYS_COMPORT1;
Raspberry и arduino подключены через usb
Эл почта .. e erno0011@mail.ru e
modbus rtu.rar [57.62 KiB]