10 адрес ПЛК (ПЛК -Slave). Я поменял на конфигураторе панели 10 на 4, теперь вместо [0A] появляется [04], а на месте [85][71] - [84][5F] соответственно
Вид для печати
10 адрес ПЛК (ПЛК -Slave). Я поменял на конфигураторе панели 10 на 4, теперь вместо [0A] появляется [04], а на месте [85][71] - [84][5F] соответственно
Да, логично, значит [01][03][13][88][00][0A][41][63] отправляет тестер.
Теперь подключите ПЛК к тестеру, параметрируйте в SFC216 модбус-адрес - 01 (также проверьте скорость и четность, совпадение с тестером).
Нажмите Poling, посмотрите, что ответит ПЛК.
а как проверить совпадение скорости и четности?
В OB100 вызывается SFC216, где параметрируется RS-485 интерфейс/сеть:
CALL SFC 216
Protocol :=B#16#5 // 5=Modbus RTU
Parameter :=DB1
Baudrate :=B#16#9 // 9600
CharLen :=B#16#3 // 8 Bit
Parity :=B#16#0 // non
StopBits :=B#16#1 // 1
FlowControl:=B#16#1
RetVal :=MW106 // Return-Code
Параметры скорости, стоп-бит и четности должны совпадать с параметрами установленными в тестере.
Да я вроде бы параметризацию сделал, только немного отличающуюся от Вашей
CALL SFC 216
Protocol :=B#16#7 // 5=Modbus RTU slave
Parameter :=P#DB10.dbx0.0 byte4
Baudrate :=B#16#9 // 9600
CharLen :=B#16#3 // 8 Bit
Parity :=B#16#0 // non
StopBits :=B#16#3 // 2
FlowControl:=B#16#0
RetVal :=MW106 // Return-Code
У меня еще одна проблема:
на ПК у меня нет COM-порта, с ПЛК я соединяюсь при помощи зеленого кабеля от Vipa и переходника USB<>COM UR1FT. Не знаю как подключить RS485. На ПЛК - проблем нет, а вот поддерживает ли переходник RS485 и к каким ножкам паяться.
грин кабель можно подключать к переходникам. у меня работало.
дело в том, Cpu 2bs32 по документации поддерживает только Rs485 (имеется ввиду COM-порт)
обычно для таких разъемов 5-земля, 2 и 3- дата (a и B). землю подключать не обязательно. попробуйте методом тыка.
можно осицилографом. а и в-два противонаправленных по потенциалу сигнала.(если а1в, то в-1в)
Нестыковка получается с ИП320-
с ПЛК идет соединение с ножек 8 и 9, а на ModbusTester с ножек 2 и 3.
Тестер информацию считывает, а вот на счет ПЛК я что-то сомневаюсь.
Прозвонил переходник, получилось 2-2, 3-3, 5-5, 8-В, 9-А, 7-8
В CPU VIPA 21x-2BS32 разъм COM - RS-485:
RxD/TxD-P (B) 3pin
RxD/TxD-N (A) 8pin
этот разъем мы используем для соединения с панелью ОВЕН ИП320.
Разъем MP2I используется для:
1. програмирования и отладка программы (RS-232-зеленый кабель или MPI)
2. связь с панелью, если панель имеет MPI
3. связь с OPC-сервером (RS-232-зеленый кабель или MPI)
такой переходничок придется самому распаять.
Панель ОВЕН ИП320 можно подключить к CPU VIPA распояв кабель
RS-485 - RS-485
Для тестирования CPU VIPA с помощью программы Modbus-тестер понадобиться преобразователь USB - RS-485.
UR1FT если я не ошибаюсь RS-485 не поддерживает?
трудно сказать - подделживает или нет. ему уже лет 8
кабель для соединения если не экранирован не страшно же?
витая пара помех не боится.
Купил конвертер USB<>RS485 подключил контроллер в режиме master
Подключил все это к ПК, запустил Modbus Tester, контроллер выдает следующую информацию - [FF][FE][F4][3E][FC]. Что с этим делать?
как спараметрирован Sfc217 ?
A M 1.1
JNB M000
CALL SFC217
DataPtr:=P#DB1.DBX 0.0 BYTE 2
DataLen:=MW220
RetVal:=MW222
M000 :NOP 0
Попробуйте сформировать Modbus запрос:
L B#16#1
T DB1.DBB 0
L B#16#3
T DB1.DBB 1
L B#16#0
T DB1.DBB 2
L B#16#0
T DB1.DBB 3
L B#16#0
T DB1.DBB 4
L B#16#A
T DB1.DBB 5
CALL SFC 217
DataPtr:=P#DB1.DBX0.0 BYTE 6
DataLen:=MW220
RetVal :=MW222
В тестере должны увидеть [01][03][00][00][00][0A][C5][CD]
ничего не выходит. скорость передачи-получения очень высокая. в тестере творится не понятно что.
В SFC 217 появилась ошибка "Wrong slave address in respond"
а как можно изобразить Sfc218?
Уменьшите скорость запросов, DB10.DBB0 -> 10000 (1сек.)
Return-Code - "Wrong slave address in respond"???
У вас же настроен режим Modbus Master (Protocol :=B#16#5)?
CALL SFC 216
Protocol :=B#16#5
Parameter :=DB10
Baudrate :=B#16#9
CharLen :=B#16#3
Parity :=B#16#0
StopBits :=B#16#1
FlowControl:=B#16#1
RetVal :=MW106
В DB10 один параметр DBB0 (тайм-аут), еще можно записать Parameter :=P#DB10.dbx0.0 byte2
SFC 218 пока рассматривать нет смысла, надо добиться нормальной передачи.
в тестере появляются только значения типа -
[df][ee][fe][df][ee][fe][df][ee]
[fe][df][ee][fe][df][ee][fe]
[df][ee][fe][df][ee][fe]
Скорость опросов поменялась (1сек.)?
В OB1 напишите (в начале блока) и загрузите в PLC:
L B#16#1
T DB1.DBB 0
L B#16#3
T DB1.DBB 1
L B#16#0
T DB1.DBB 2
L B#16#0
T DB1.DBB 3
L B#16#0
T DB1.DBB 4
L B#16#A
T DB1.DBB 5
CALL SFC 217
DataPtr:=P#DB1.DBX0.0 BYTE 6
DataLen:=MW220
RetVal :=MW222
BE
Cкорость опросов 10ms. По другому выходит или слишком мало значений или наоборот. В DB1 пробовал ставить разные значения, а отличий в тестере почти не наблюдается
После люблго изменения в OB100 и DB10 необходимо перегружать PLC (код в OB100 выполняется только при старте).
Напишите в OB100:
L W#16#2710
T DB10.DBW0
CALL SFC 216
Protocol :=B#16#5
Parameter :=P#DB10.dbx0.0 byte2
Baudrate :=B#16#9
CharLen :=B#16#3
Parity :=B#16#0
StopBits :=B#16#1
FlowControl:=B#16#1
RetVal :=MW106
я перегружаю каждый раз
Что такое формат Intel или Motorola?
Хранение значений в диапазоне адресов процессора.
В формате Motorola байты располагаются по убыванию (1-ый байт старший, 2-ой байт младший). В формате Intel по возрастанию.
Какое отношение эти форматы имеют к Modbus-у?
Мне пришло сообщение с техподдержки - "Насколько я знаю, ОП работает как Modbus-master, ПЛК - slave, т.е.
идеологически у вас все верно. Разбирайтесь с адресацией (+0 или +1,
длинный/короткий, формат Intel или Motorola и т.д.),
таймаутами и т.д." Все, чем они смогли мне помочь
от efo с Питера
Еще вариант обновить firmware CPU VIPA.
У вас есть возможность подвезти CPU VIPA к нам в офис (Санкт-Петербург, район метро "Нарвская")? Сложно решать проблему на расстоянии.
Новая беда - в SFC216 ошибка в CharLength. Как ее устранить?
CharLen :=B#16#3 ?
CharLen:=B#16#3.
Пишу в SFC 216 Parameter:=P#DB10.DBX0.0 BYTE4 выдает ошибку -
Access error in parameter DB (DB too short), а в SFC217 все время ошибка
RS232 interface not configured.
Для режима Master Parameter:=P#DB10.DBX0.0 BYTE2
Пропишите в OB100: Посмотрите запустится ли CPU?
M001: NOP 0
CALL SFC 216
Protocol :=B#16#5
Parameter :=P#DB10.DBX0.0 BYTE2
Baudrate :=B#16#9
CharLen :=B#16#3
Parity :=B#16#0
StopBits :=B#16#1
FlowControl:=B#16#1
RetVal :=MW106
L MW 106
SRW 12
L B#16#8
==I
JC M001