Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
21.11.2017, 05:25:09
 
Начало Помощь Поиск Войти Регистрация
Новости: Форум обновлен

+  Форум АО "ВЗЛЕТ"
|-+  Приборы ЗАО "Взлет"
| |-+  Отдел программистов
| | |-+  Пример связи расходомера Взлёт МР с Simatic S7-1200 через CM1241 RS485
0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Пример связи расходомера Взлёт МР с Simatic S7-1200 через CM1241 RS485  (Прочитано 143 раз)
Petricheg
Разбирается
*

Харизма: 0
Офлайн Офлайн

Сообщений: 1


« : 27.10.2017, 18:14:42 »

Пример связи ультразвукового расходомера Взлёт МР с Simatic S7-1200 через коммуникационный модуль связи CM1241 RS485 в режиме Точка-к-Точке в формате Modbus в среде программирования TIA Portal v14/
В данном примере инициализация CM1241 происходит при первом проходе программы по флагу FirstScan
(для реальных приложений надо использовать флаг для принудительной инициализации в любое время)


Затем надо активировать возможность CM1241 оператором "Set_Features"самому аппаратно подсчитывать контрольные суммы при передаче и приёме
то есть программист будет думать только о собственно адресах, фамилиях, явках


Данные для запроса размещены в блоке данных, который для оператора "Send_P2P" задаётся абсолютным адресом на первый байт блока данных, за которым после пробела указывается длина передаваемых полезных данных (в данном случае 6 байт)
В первом байте указывается сетевой адрес расходомера в сети RS485  (в данном случае "1")
Во втором байте задаётся номер функции Modbus
Рабочий опрос значений регистров 3***** и 4***** производится заданием значения функции:
 "3" для регистров  "4*****"
"4" для регистров  "3*****"
дальше два байта с абсолютным номером регистра
дальше два байта с длиной запрашиваемых данных


В ответ на запрос Взлёт должен послать ответ, который CM1241 оператором "Receive_P2P" перешлёт в блок данных, который надо адресовать абсолютным адресом первого байта блока
В первом байте будет сетевой адрес отправителя
Вторым байтом будет номер функции, по которой был запрос в  "Send_P2P" или будет код ошибки, если запрос был некорректным
Третьим байтом будет длина переданных расходомером данных в байтах


===================
Почему в данном случае использовал операторы Точка-к-Точке, а не специализированные операторы "Modbus_*"  MB_COMM_LOAD, MB_MASTER, ?
Сначала попробовал именно ими:
+ регистры 4***** читаются
- а вот регистры 3***** не читаются Sad
надо разбираться кто не прав и что делать... смотреть на шину логическим анализатором посылки...

==================

с этим расходомером столкнулся впервые - есть непонятности и неясности где какие данные должны лежать и в каком формате... тут селёдка была завёрнута... это не смотреть...
приходиться выяснять все варианты методом тыка и выявлять несоответствия или замалчивания в таблице регистров Список ModBus-регистров ModBus_ursv1xx.pdf


и есть расхождения по цифрам в читаемых данных из регистров и отображаемых данных на экране расходомера... по документации сопоставить соответствие экранных значений ячейкам регистров не получается...
толщина стенки 2,0 или 6,0 ?

Записан
Страниц: [1] Печать 
« предыдущая тема следующая тема »
Перейти в:  


Войти

© 1990—2016, АО «Взлет».
Все права защищены.
Контактная информация
Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC
Материалы, размещенные на сайте, охраняются законодательством об авторском праве. Перепечатка материалов допускается только со ссылкой на сайт.