Среда
- libmodbus
- Visual Studio
- Прямое соединение между ПК и пневмоостровом (без переключения между ними)
Установление соединения и простое управление катушками работает отлично.
В чем проблема
Однако, если сеть прерывается во время установленного соединения (например, при выдергивании кабеля связи), примерно в 20% случаев после восстановления соединения происходит следующее явление:
Катушка больше не может быть включена постоянно. Слышно, как он постоянно включается и выключается.
А вот постоянное выключение не является проблемой.
В этом состоянии ни отключение, ни повторное установление соединения не помогают. Единственное, что работает, это выключить и снова включить весь коллектор клапанов.
Мой вопрос
Кто-нибудь знает, есть ли в libmodbus своего рода команда сброса?
Мой код
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
extern "C" {
#include
}
//Tags
std::string input; //For Keyboard input
int main()
{
//Slave Parameter in Tags
const char* ip = "192.168.1.20";
int port = 502;
int slave_id = 1;
//If Disconnect, jump to this point
reconnect:
//Should be connected?
std::cout
Подробнее здесь: https://stackoverflow.com/questions/798 ... rk-failure
Мобильная версия