Имеется ПЛК-150 -220-А-М Зав. № 10749130502143650 Б13-009949 2013г. версия прошивки 2.14.0 Лог hyperterminal - 223.TXT
Кабель КС-1 с РАЗОРВАННОЙ связью 4 и 5 проводков, подсоединенный к компу через переходник USB-COM.
Согласно документации номера портов для ПЛК-150: COM1 - RS-232, COM4 - RS-232 Debug
Версия таргета 2.10.
Проект, взятый с диска Navigator_PLC_DVD_v3 com_port_test
PHP код:
IF NOT port_opened THEN
com_handle:=SysComOpen(com_num); (*строка 1*)
IF com_handle<>16#FFFFFFFF THEN
port_init:=TRUE;
ELSE
SysComClose( com_num);
com_handle:=SysComOpen( com_num);
port_init:=TRUE;
END_IF
(*Настраиваем скорость*)
com_set.Port:=com_num;
com_set.dwBaudRate:=115200;
com_set.byParity:=0;
com_set.dwTimeout:=0;
com_set.byStopBits:=0; (* *)
com_set.dwBufferSize:=0;
com_set.dwScan:=0;
res:=SysComSetSettings(com_num,ADR(com_set)); (*строка 2*)
(*Успешно открыли*)
IF NOT res THEN
port_opened:=TRUE;
END_IF
END_IF
IF NOT port_opened THEN
RETURN;
END_IF
ton1(In:=start_tmr,pt:=t#1s);
start_tmr:=TRUE;
tr1(clk:=ton1.Q);
IF tr1.Q THEN
SysComWrite(com_num,ADR(snd_str),LEN(snd_str),0);
start_tmr:=FALSE;
END_IF
sz:=SysComRead(com_num,ADR(rcvBUF),1024,0); (*строка 3*)
При com_num = 4 в строке 1 com_handle становится равным 0, в строке 2 res становится равным *INVALID*, в hyperterminale я вижу сроку TEST1, однако записать в порт на стороне компа и увидтеть, то что было записано на строне ПЛК не получается в строке 3 sz всегда равно 0.
При com_num = 1 в строке 1 com_handle становится равным INVALID_HANDLE (большое число начинается с 42), соответсвенно никуда дальше программа не идет. Если сделать этот проект загрузочным, то после рестарта ПЛК я наблюдаю в hyperterminale примерно раз в секунду строку make req at и изменяющееся число.
Кабель используется один и тот же. Перемычку на верхней плате замыкал - ничего не поменялось. Такое чувство, что я что-то упускаю или не допонимаю, вопрос что?
Проект полностью - tttttt.zip