Название: Пример связи расходомера Взлёт МР с Simatic S7-1200 через CM1241 RS485 Отправлено: Petricheg от 27.10.2017, 18:14:42 Пример связи ультразвукового расходомера Взлёт МР с Simatic S7-1200 через коммуникационный модуль связи CM1241 RS485 в режиме Точка-к-Точке в формате Modbus в среде программирования TIA Portal v14/
В данном примере инициализация CM1241 происходит при первом проходе программы по флагу FirstScan (для реальных приложений надо использовать флаг для принудительной инициализации в любое время) (http://i7.5cm.ru/t/01it.jpg) (http://5cm.ru/view/i7/01it.jpg) Затем надо активировать возможность CM1241 оператором "Set_Features"самому аппаратно подсчитывать контрольные суммы при передаче и приёме то есть программист будет думать только о собственно адресах, фамилиях, явках (http://i7.5cm.ru/t/TBMp.jpg) (http://5cm.ru/view/i7/TBMp.jpg) Данные для запроса размещены в блоке данных, который для оператора "Send_P2P" задаётся абсолютным адресом на первый байт блока данных, за которым после пробела указывается длина передаваемых полезных данных (в данном случае 6 байт) В первом байте указывается сетевой адрес расходомера в сети RS485 (в данном случае "1") Во втором байте задаётся номер функции Modbus Рабочий опрос значений регистров 3***** и 4***** производится заданием значения функции: "3" для регистров "4*****" "4" для регистров "3*****" дальше два байта с абсолютным номером регистра дальше два байта с длиной запрашиваемых данных (http://i7.5cm.ru/t/G9Ej.jpg) (http://5cm.ru/view/i7/G9Ej.jpg) В ответ на запрос Взлёт должен послать ответ, который CM1241 оператором "Receive_P2P" перешлёт в блок данных, который надо адресовать абсолютным адресом первого байта блока В первом байте будет сетевой адрес отправителя Вторым байтом будет номер функции, по которой был запрос в "Send_P2P" или будет код ошибки, если запрос был некорректным Третьим байтом будет длина переданных расходомером данных в байтах (http://i7.5cm.ru/t/JIQH.jpg) (http://5cm.ru/view/i7/JIQH.jpg) =================== Почему в данном случае использовал операторы Точка-к-Точке, а не специализированные операторы "Modbus_*" MB_COMM_LOAD, MB_MASTER, ? Сначала попробовал именно ими: + регистры 4***** читаются - а вот регистры 3***** не читаются :( надо разбираться кто не прав и что делать... смотреть на шину логическим анализатором посылки... ================== с этим расходомером столкнулся впервые - есть непонятности и неясности где какие данные должны лежать и в каком формате... тут селёдка была завёрнута... это не смотреть... приходиться выяснять все варианты методом тыка и выявлять несоответствия или замалчивания в таблице регистров Список ModBus-регистров ModBus_ursv1xx.pdf (http://i7.5cm.ru/t/r6Je.jpg) (http://5cm.ru/view/i7/r6Je.jpg) и есть расхождения по цифрам в читаемых данных из регистров и отображаемых данных на экране расходомера... по документации сопоставить соответствие экранных значений ячейкам регистров не получается... толщина стенки 2,0 или 6,0 ? (http://i7.5cm.ru/t/4M2Z.jpg) (http://5cm.ru/view/i7/4M2Z.jpg) Название: Re:Пример связи расходомера Взлёт МР с Simatic S7-1200 через CM1241 RS485 Отправлено: asutp29 от 18.11.2019, 10:43:02 Добрый день
Столкнулся с такой же проблемой. Есть проект для TIA portal? Можете отправить на почту asutp29@yandex.ru ? Название: Re:Пример связи расходомера Взлёт МР с Simatic S7-1200 через CM1241 RS485 Отправлено: str72 от 14.01.2021, 12:55:42 Доброго всем дня! Тоже интересно решение как подружить Simatic S7 1200 и ИВК-102П
|