PDA

Просмотр полной версии : Почему не открывается порт RS-232 у ПЛК-150 в стандартном режиме



kost2
18.06.2013, 09:27
Имеется ПЛК-150 -220-А-М Зав. № 10749130502143650 Б13-009949 2013г. версия прошивки 2.14.0 Лог hyperterminal - 8991
Кабель КС-1 с РАЗОРВАННОЙ связью 4 и 5 проводков, подсоединенный к компу через переходник USB-COM.
Согласно документации номера портов для ПЛК-150: COM1 - RS-232, COM4 - RS-232 Debug
Версия таргета 2.10.
Проект, взятый с диска Navigator_PLC_DVD_v3 com_port_test


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 и изменяющееся число.

Кабель используется один и тот же. Перемычку на верхней плате замыкал - ничего не поменялось. Такое чувство, что я что-то упускаю или не допонимаю, вопрос что?



Проект полностью - 8992

S.A.D.
18.06.2013, 11:10
на сколько я помню порт номер 4 это 232-debug. для того чтобы по нему работать нужен кабель такой же как кабель программирования КС1, но без перемычки внутри (2 провода спаяны вместе внутри DB-9f). По этой перемычке ПЛК при старте идентифицирует тип кабеля к нему подключенного.

kost2
18.06.2013, 11:26
Погодите, насколько я понял из чтения документации и форума. Если в кабеле есть перемычка (которую я удалил) порт работает как debug, т.е. com4, если перемычки нет, то порт работает в стандартном режиме - т.е. открываться должен com1

S.A.D.
18.06.2013, 12:01
номер порта всегда неизменен и привязан к физическому....разъему, если хотите. Тот порт который у ваc на контроллере RS-232-debug с rj-6 разъемом - COM4, Порт который просто RS-232 с db-9m разъемом - это COM1. Номера портов неизменны. При этом СОМ4 (который для программирования) может работать и как порт для программирования, и как обычный ком-порт. На то как он будет работать и влияет перемычка. Если вы её удаляете, то порт работает как обычный ком порт. При этом, чтобы контроллер увидел, какой именно кабель вы в него воткнули (с перемычкой или без) нужно нажать скрытую кнопку "сброс" - контроллер перезагрузится, прогонит тесты, реинициализирует порт, в результате чего последний будет работать в соответствии с тем есть перемычка или нет.

kost2
18.06.2013, 12:16
так нету на плк-150 RS-232 с db-9m...
зачем же тогда в документации пишут 2 номера ком-порта, если физически на плк только один разъем ? это сбивает с толку

S.A.D.
18.06.2013, 12:34
так нету на плк-150 RS-232 с db-9m...
зачем же тогда в документации пишут 2 номера ком-порта, если физически на плк только один разъем ? это сбивает с толку
проверил - действительно, у ПЛК150 только один 232 - он же для программирования. Значит номер порта - 4. А в какой именно документации вы прочитали про 2 ком-порта? Если это общая документация, то там как правило даются общие данные применимые ко всей линейке контроллеров (100, 150, 154).

Есть например вот-такой pdf с номерами портов:
8993