Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

weintek - макрос

Модератор: специалисты по Weintek


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

weintek - макрос

Сообщение Booker » 03 июл 2014, 12:41

Еще раз добрый день! Повторюсь в этом деле я нуб, впервые с панелями работаю.

есть макрос

Код: Выделить всё

macro_command main()
   int a
   GetData(a, "Local HMI", LW, 3, 1)

OUTPORT(a, "MODBUS RTU Device", 1)
end macro_command


В LW 3 вводится число с панели, которое потом отсылается по com-порту в плк.
Если я ничего не ввожу, то в ПЛК приходит "FF FF FF 00"
Аналогично если ввожу "0", то в ПЛК приходит "FF FF FF 00"
Если ввожу "1", то в ПЛК приходит "7F FF FF FF 00"
"2" - "3F FF FF 00"

немного переделываю макрос

Код: Выделить всё

macro_command main()
   int a
   GetData(a, "Local HMI", LW, 3, 1)

   char command[32]
   command[0] = a
   OUTPORT(command[0], "MODBUS RTU Device", 1)
end macro_command


Если я ничего не ввожу, то в ПЛК приходит "00"
"0" - "00"
"1" - "7F 00"
"2" - "3F 00"

Но в любом случае это не совсем то, что мне нужно, так как мне нужно чтоб приходило вводимое число, только в hex, а 1 в hex явно не 7F 00. В документации были пару методов для конвертирования, что-то типа DEC2ASCII - но желаемого результата это не дало. Что я делаю не так или не доделываю??

Аватара пользователя

FAM-Electric
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 75
Зарегистрирован: 04 фев 2014, 14:44
Ф.И.О.: Каримов Артем
Контактная информация:

Re: weintek - макрос

Сообщение FAM-Electric » 03 июл 2014, 15:48

Почему "MODBUS RTU Device", а не "Free protocol"?
и можно параметры ком-порта перепроверить
Информация взята с сайта компании "ФАМ-Электрик" - официального дистрибьютора Weintek в России http://www.rusavtomatika.com


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

Re: weintek - макрос

Сообщение Booker » 03 июл 2014, 15:55

FAM-Electric писал(а):Почему "MODBUS RTU Device", а не "Free protocol"?

Имя - "MODBUS RTU Device"
Тип устройства - "Free protocol"

Я думаю какое имя не принципиально?? Или принципиально??

FAM-Electric писал(а): и можно параметры ком-порта перепроверить

Что именно перепроверить??

Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 205
Зарегистрирован: 22 мар 2013, 10:52
Ф.И.О.: Денис Порфирьев
Откуда: Санкт-Петербург
Поблагодарили: 4 раза
Контактная информация:

Re: weintek - макрос

Сообщение skr » 04 июл 2014, 08:44

Booker писал(а):
FAM-Electric писал(а):Почему "MODBUS RTU Device", а не "Free protocol"?

Имя - "MODBUS RTU Device"
Тип устройства - "Free protocol"

Я думаю какое имя не принципиально?? Или принципиально??

Если имя не менялось вручную, обычно оно автоматически меняется при смене протокола. В данном случае действительно не принципиально, макрос не скомпилируется с неправильным протоколом.

Booker писал(а):
FAM-Electric писал(а): и можно параметры ком-порта перепроверить

Что именно перепроверить??

Все параметры: скорость, число битов данных и стоповых битов, чётность.
"ФАМ-Электрик" - официальный дистрибьютор Weintek в России http://www.rusavtomatika.com


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

Re: weintek - макрос

Сообщение Booker » 04 июл 2014, 09:17

skr писал(а):Если имя не менялось вручную, обычно оно автоматически меняется при смене протокола. В данном случае действительно не принципиально, макрос не скомпилируется с неправильным протоколом.

Имя не менялось, макрос компилируется, согласен, что с неправильным протоколом не скомпилируется, уже натыкался на эти грабли

skr писал(а):Все параметры: скорость, число битов данных и стоповых битов, чётность.


Ок. Вот сейчас вернулся к примеру из документации.

В документации написано:
Для использования функции OUTPORT, в начале должно быть добавлено устройство типа "Free Protocol".
Устройство с именем "MODBUS RTU Device". Атрибуты порта зависят от настроек устройства (текущие установки: "19200,E,8,1").
Ниже приведен пример выполнения записи в ПЛК (установления бита в ON) - устройство MODBUS.

macro_command main()
char command[32]
short address, checksum
FILL(command[0],0,32)
command[0] = 0x1
command[1] = 0x5
address = 0
HIBYTE(address, command[2])
LOBYTE(address, command[3])
command[4] = 0xff
command[5] = 0
CRC(command[0], checksum, 6)
LOBYTE(checksum, command[6])
HIBYTE(checksum, command[7])
OUTPORT(command[0], "MODBUS RTU Device", 8)
end macro_command


com-порт в плк, на компьютере, и в программе для чтения данных из ком-порта - все настроено так как в примере "19200,E,8,1"
При исполнении данного макроса в программе получаю "7F FD FF 01 FF E7 16 00".
но "7F" никак не соответствует передаваемому "command[0] = 0x1"
как "FD" тоже не соответствует передаваемому "command[1] = 0x5"

Или я чего-то не допонимаю/делаю не так??

P.S. программу для чтения данных из ком-порта использую wTerm. Самописная программа(не мной), может косяк в ней??

Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 205
Зарегистрирован: 22 мар 2013, 10:52
Ф.И.О.: Денис Порфирьев
Откуда: Санкт-Петербург
Поблагодарили: 4 раза
Контактная информация:

Re: weintek - макрос

Сообщение skr » 04 июл 2014, 09:53

Скорей всего дело в параметрах порта в программе. Попробуйте отключить всё, что связано с управлением потоком (flow control).
А как у вас устройства подключены друг к другу?
"ФАМ-Электрик" - официальный дистрибьютор Weintek в России http://www.rusavtomatika.com


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

Re: weintek - макрос

Сообщение Booker » 04 июл 2014, 11:07

skr писал(а):Скорей всего дело в параметрах порта в программе. Попробуйте отключить всё, что связано с управлением потоком (flow control).


накидал маленький консольный скрипт на perl для прослушивания ком-порта, приходит в принципе тоже самое что в программе

отправляю восемь "1"

получаю
⌂⌂⌂⌂⌂⌂⌂⌂
7f7f7f7f7f7f7f7f


skr писал(а):А как у вас устройства подключены друг к другу?

шнуром, RS-485 2W или вы что-то другое спрашивали??

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: weintek - макрос

Сообщение MuadDib » 04 июл 2014, 11:18

У вас полярность проводов RS-485 случаем не перепутана? Попробуйте поменять "+" и "-" на одном из портов и посмотрите, что изменится.


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

Re: weintek - макрос

Сообщение Booker » 04 июл 2014, 11:53

MuadDib писал(а):У вас полярность проводов RS-485 случаем не перепутана? Попробуйте поменять "+" и "-" на одном из портов и посмотрите, что изменится.

Прошу прощения... но где и как поменять "+" и "-"??

Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 205
Зарегистрирован: 22 мар 2013, 10:52
Ф.И.О.: Денис Порфирьев
Откуда: Санкт-Петербург
Поблагодарили: 4 раза
Контактная информация:

Re: weintek - макрос

Сообщение skr » 04 июл 2014, 15:02

Booker писал(а):
skr писал(а):А как у вас устройства подключены друг к другу?

шнуром, RS-485 2W или вы что-то другое спрашивали??

И это, но ещё интересно, правильно ли подключен компьютер к панели.

Booker писал(а):
MuadDib писал(а):У вас полярность проводов RS-485 случаем не перепутана? Попробуйте поменять "+" и "-" на одном из портов и посмотрите, что изменится.

Прошу прощения... но где и как поменять "+" и "-"??

2 провода RS485 - они и есть плюс и минус. А ещё, как выяснили где-то на этом форуме, в продукции разных производителей обозначения A/B могут иметь противоположные значения.
"ФАМ-Электрик" - официальный дистрибьютор Weintek в России http://www.rusavtomatika.com


Автор темы
Booker
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 02 июл 2014, 14:49
Ф.И.О.: Надыров Булат Наилович
Забанен: Бессрочно

Re: weintek - макрос

Сообщение Booker » 04 июл 2014, 16:04

skr писал(а):
Booker писал(а):
skr писал(а):А как у вас устройства подключены друг к другу?

шнуром, RS-485 2W или вы что-то другое спрашивали??

И это, но ещё интересно, правильно ли подключен компьютер к панели.

Booker писал(а):
MuadDib писал(а):У вас полярность проводов RS-485 случаем не перепутана? Попробуйте поменять "+" и "-" на одном из портов и посмотрите, что изменится.

Прошу прощения... но где и как поменять "+" и "-"??

2 провода RS485 - они и есть плюс и минус. А ещё, как выяснили где-то на этом форуме, в продукции разных производителей обозначения A/B могут иметь противоположные значения.


Уж не знаю, насколько я правильно подключил, но по-другому подключить и не получиться(только если использовать какие-то переходники). На компьютере свободен только один ком-порт, от него и пляшу. Но могу в этом вопросе ошибаться.

И еще такой момент. Отступив от настроек порта указанных в документации пробовал менять скорость паритет, и т.п. Данные приходящие на ком-порт порта меняются. Возможно, имеет значение какую именно скорость задавать, количество стоповых бит, паритет?? Просто перебирать все возможные варианты желания нет??

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: weintek - макрос

Сообщение MuadDib » 04 июл 2014, 16:51

Booker писал(а):Уж не знаю, насколько я правильно подключил, но по-другому подключить и не получиться(только если использовать какие-то переходники). На компьютере свободен только один ком-порт, от него и пляшу. Но могу в этом вопросе ошибаться.


Выше вы написали, что у вас используется RS485-2W. Вы что, подключили RS485 к обычному встроенному последовательному порту компьютера (RS-232)? Или у вас на компе есть встроенный адаптер 485го? Схему подключения в студию!

Booker писал(а):И еще такой момент. Отступив от настроек порта указанных в документации пробовал менять скорость паритет, и т.п. Данные приходящие на ком-порт порта меняются. Возможно, имеет значение какую именно скорость задавать, количество стоповых бит, паритет?? Просто перебирать все возможные варианты желания нет??


Все настройки портов на панели и на компьютере должны быть абсолютно одинаковые.


Chenchukov
здесь недавно
здесь недавно
Сообщения: 87
Зарегистрирован: 19 май 2014, 07:48
Ф.И.О.: Егор Дмитриевич Ченчуков

Re: weintek - макрос

Сообщение Chenchukov » 04 июл 2014, 20:15

Booker писал(а):Уж не знаю, насколько я правильно подключил, но по-другому подключить и не получиться(только если использовать какие-то переходники). На компьютере свободен только один ком-порт, от него и пляшу. Но могу в этом вопросе ошибаться.
И еще такой момент. Отступив от настроек порта указанных в документации пробовал менять скорость паритет, и т.п. Данные приходящие на ком-порт порта меняются. Возможно, имеет значение какую именно скорость задавать, количество стоповых бит, паритет?? Просто перебирать все возможные варианты желания нет??


подключите два порта с панели друг к другу

RS485 A1=A2, B1=B2
или
RS232 RX1=TX2, RX2=TX1 и проверьте на них замкнутую петлю прием-передача


Вернуться в «WEINTEK (операторские панели)»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей