ADAM5510 и HMI520T (обмен) |
Ответить | Страница 12> |
Автор | |
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
Опубликовано: 28 Февраль 2007 21:33 |
Добрый день! Есть сенсорная панель HMI520T и контроллер ADAM5510. Насколько я понял, за обмен данными со стороны панели отвечает компонент "Recipe Transfer" (Программное обеспечение - EZ Ware-500). Но мне не совсем понятно как работать с адресами: я создаю элемент "Recipe Transfer". У него в свойствах есть поля "device type" и "device address". Я написал небольшую программу, которая опрашивает com-порт (использовалась функция com_rx) и в случае наличия данных загорается индикатор на модуле вывода (5056D). При связи PLC с PC это работает, но при связи PLC с HMI - нет. 3) Третий вопрос: по такому принципу HMI с PLC не могут в принципе взаимодействовать или это я ошибся с распайкой кабеля либо с написанием кода? Сейчас я пытаюсь наладить взаимодействие используя функции библиотеки MODBUS/RTU. Насколько я понял нужно использовать MODBUS/RTU Slave для контроллера. С уважением, |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Может быть кто-нибудь подскажет, где можно найти документация по решению данного вопроса? Желательно на русском языке. С уважением, |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Почитайте что-нибудь про Modbus. Например, что такое "Master", а что такое "Slave". На сайте modbus.org есть документация, посмотрите Modicon Modbus Protocol Reference Guide.
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
С Modbus я определился, контроллер у меня будет slave, т.е. HMI посылает сигнал, а контроллер на этот сигнал реагирует. Я написал код по которому, как я думал, будет все работать. Код следующий: void main() ADAMRTU_ModServer_Create(0, (unsigned char *)Share_Mem,sizeof(Share_Mem)); while(1) В программе EZWare я взял готовый пример "520tdemo" и изменил для элемента "Recipe Transfer" адрес - 40001 и тип адресации-RW. Но строка кода "adv_printf("data is %X\n",Share_Mem[0])" выводит всегда одни и те же данные. Я не могу определить - обмена нет из-за неправильного кода или обмена нет из-за неправильной настройки проекта в программе EZWare? Наверняка кто-то сталкивался с настройкой проекта в EZWare либо кто-нибудь писал программу для adam5510 с использованием modbus. Мне бы Ваш опыт очень помог. |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Я писал программу под Adam. На первый взгляд все правильно кроме ADAMRTU_ModServer_Create(0, (unsigned char *)Share_Mem,sizeof(Share_Mem)); |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Почитав документацию, если я правильно понял, 0 - это широковещательный запрос, т.е. ко всем устройствам. Может быть я не прав. А если нужно указать номер от 1 до 255, то как узнать, какой номер узла у моего контроллера и как этот номер взаимосвязан с сенсорной панелью? |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Вы опять путаете мастер и слэйв :) Слэйв обязательно должен иметь любой адрес (номер узла) от 1 до 255. Тот же самый адрес должен задаваться где-то в настройках панели. Обычно это звучит как "Node" или "Node address" или типа "Slave No" что-нибудь. А широковещательный запрос с номером узла 0 может выдать мастер, если он такие команды поддерживает (т.е. теоретически на панели можно задать номер узла 0, но не факт что он это поймет) |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Поставьте адрес 1 - обычно его по умолчанию ставят.
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Понял, исправил. В настройках панели нашел пункт "PLC Station No". Поставил в этом пункте 1, хотя в документации на сенсорную панель говорится, что там нужно поставить 0. Обмена пока не происходит, видимо что-то с адресацией не так. Кабель для связи PLC c панелью шел в комплекте с панелью, поэтому вряд ли дело в нем. Распайка следующая: 1 pin: RXD- <-> RXD- 2 pin: RXD+ <-> RXD+ 3 pin: TXD- <-> TXD- 4 pin: TXD+ <-> TXD+ 5 pin: GND <-> GND Если кто работал с HMI520t от MapleSystems и с ПО EZWare500, то хотелось услышать, как они настраивали обмен через интерфейс RS-232. |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Судя по распайке провода, у вас RS-422 порт в панели. А в Адаме COM1 помоему RS-232 |
|
Ответить | Страница 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |