День добрый.
Пытаюсь на библиотеке OwenCommunication 3.5.11.7 соорудить modbus slave для опроса несколькими мастерами:
Код:PROGRAM cfgNetOut VAR fbMB_TcpSlave : OCL.MB_TcpSlave; awSlaveData : ARRAY [0..4] OF WORD; V_NetOut1 : WORD; V_NetOut2 : WORD; V_NetOut3 : WORD; V_NetOut4 : WORD; END_VARВ тестовой сети присутствуют три устройства: ПЛК в роли слейва и два ПК, на которых запускаются различные modbus-эмуляторы в роли мастеров.Код:fbMB_TcpSlave(xEnable := TRUE, sIpAddr := '0.0.0.0', uiPort := 502, usiUnitId := 1, pData := ADR(awSlaveData), szSize := SIZEOF(awSlaveData)); awSlaveData[0] := V_NetOut4; awSlaveData[1] := V_NetOut3; awSlaveData[2] := V_NetOut2; awSlaveData[3] := V_NetOut1;
Мастер подключается и получает нужные данные. Но при запуске второго мастера (на другом ПК, соответственно) он выдаёт ошибку подключения. Если остановить опрос с первого мастера, через несколько секунд второй мастер успешно подключается. Но тогда уже не может подключиться первый мастер. Попытки увеличить интерал между запросами от мастера до 1 секунды никак на результат не повлияли. В контроллере программа крутится с циклом 100 мс.
В какую сторону копать? Или больше одного мастера не может быть в принципе? Но зачем тогда поле usiCurrentCountClients у MB_TcpSlave?



