PDA

Просмотр полной версии : ПЛК304 + RS232



Константинов Сергей
30.05.2013, 08:08
Здравствуйте, подскажите как настроить опрос ПЛК304 по порту RS232 другого ПЛК304?

Настраивал опрос по RS485 (1-4 порты), все работало отлично, теперь мне нужно тоже самое, но по RS232 (2-3 порты) нечего не пашет.

Слейв устройство:

IF Conn2.Done = FALSE THEN
Conn2(enable:=TRUE, PortNum:=3);
IF Conn2.Done THEN
SysComPurge(Conn2.Handle);
TimeOut:=200;
END_IF
END_IF

IF Conn2.Done THEN
MB_func(
ComHandle:=Conn2.Handle,
DevAddr:=24,
pBuffer:=ADR(MB_Buffer),
BufSize:=SIZEOF(MB_Buffer),
NewData=>MB_NewData,
Error=>MB_Error);
IF MB_Error<>MB_OK THEN
MB_NewData:=FALSE;
END_IF
IF MB_NewData THEN
MB_Error:=MB_OK;
END_IF
MB_Buffer[0]:=x;
END_IF;

Мастер устройство:

IF Conn1.Done = FALSE THEN
Conn1(enable:=TRUE ,PortNum:=3);
IF Conn1.Done = TRUE THEN
SysComPurge (Conn1.Handle);
TimeOut:=200;
END_IF
END_IF

IF Conn1.Done = TRUE THEN
get1_modbus(
Enable:=enabl,
Mode:=MB_RTU,
DevAddr:=24,
Quantity:=1,
ComHandle:=Conn1.Handle,
TimeOut:=TimeOut2,
Buffer:=Buffer,
Complete=>cmp1,
Exception=>err2,
ByteCnt=>DataSize);
IF cmp1 THEN
IF err=0 THEN
x:=BYTE_TO_INT(BUFFER[1]) OR SHL(BYTE_TO_INT(BUFFER[0]),8);
END_IF
END_IF
IF enabl=FALSE THEN
enabl:=TRUE;
END_IF
IF err2<>0 THEN
enabl:= FALSE;
END_IF
END_IF;

Так по RS485 работает, а по RS232 не работает, подскажите как выкрутиться?

kgsh82
30.05.2013, 15:13
Как подключаете?

Константинов Сергей
31.05.2013, 06:36
Программа сверху, обжимка кабелей согласно мануалу для RS232, используеться 2 порт на каждом ПЛК

capzap
31.05.2013, 07:44
С джамперами то что?

Константинов Сергей
31.05.2013, 08:40
в положении ON все

kgsh82
31.05.2013, 12:38
Где-то на форуме обсуждали о плохом качестве розеток-вилок типа DB9.
Может здесь копнуть?

Константинов Сергей
31.05.2013, 12:53
Что то сильно сомневаюсь что проблема в них, два крайних работают без нареканий