Господа, столкнулся с проблемой, имеется: - S7-1200 1211C (dc/dc/rly) - CB 1241 (rs485) - Некое модбас устройство с регистрами превышающее допустимый предел в функции 04 (симатик пишет ограничение для функции mb_master от 30001 до 39999, а необходимо считать регистр 3ххххх). Есть ли какие-нибудь варианты это реализовать? Функции Modbus_comm_load и modbus_master не хотят работать с данной коммуникационной платой.
Комментарии: 28
Dmitry
так там же можно больше нулей, кажется, писать в адресе
Ilya
То еще в блок встроена настройка соединения
Petr
не хотелось бы писать свои функции для этого, удивлен, что сименс так ограничили этот диапазон
Dmitry
а через 03 не получается?
Petr
неа
Dmitry
т.е. устройство в 03 не умеет?
Petr
умеет, там свои регистры чтобы не было вопросов) с 3й функцией проблем нет)
Dmitry
ну так 03 функцией попробовать область памяти вычитать, которую в 04
Petr
пробовали, ничего( даже нашел на форуме аналогичную проблему, там как раз как вы и пишете, просто использовали 3ю функцию https://support.industry.siemens.com/tf/ww/en/posts/s7-1200-mb-master-function-code-mode/124305?page=0
Alexander
Я дурак или где... Но там же просто 33000
Petr
но там устройству было все равно какая функция, данному к сожалению никак hex и dec путаете)
Ilya
В классике вообще встроенного модбас не было) Либо плати деньги за ключ либо, пиши свою реализацию
Petr
8189 Invalid data address value к счастью я эти времена не застал, молодой еще)))
Alexander
А 103 коммманду не воспринимает?
Petr
104 может? эта функция (Mode) только у Modbus_Master, а у меня MB_Master( CB 1241 с Modbus_Master и Modbus_Comm_Load не дружит
Anonim
Либо используй тот код собственной реализации, что выложил добрый человек на официальном форуме сименс
Ilya
ну можно и так, но написать это самому вот вообще не сложно
Petr
работали бы те две функции, проблем бы не было, там есть отдельный MODE (104), который расширяет данный диапазон
Dmitry
а, действительно
Anonim
у меня была такая же проблема с частотником Danfoss , спасло то что Danfoss продублировал адреса регистров в допустимой для функции сименса области. Mode=104 тоже не помог.Правда там был CM PtP в стойке ET200sp. У меня есть удачный опыт работы с CB1241 . Mb_comm load работает с ней и сам MB_Master . Не понятно почему именно с этой платой не работает готовый FB Master_Modbus от Siemens Online help. Написал свой драйвер опроса именно для случаев с CB1241. Могу скинут
Petr
Было бы замечательно, если не трудно)
Anonim
Но это не решит проблему, если надо считывать именно 4ой функцией модбаса, а производитель задал адрес регистра "за" 39999
Petr
А, ну тогда да Не мой случай)
Ilya
CRC считали посредством умножения по модуля 2 на полином A001 с последующем сдвигом вправно кажется на 2 байта? или табличкой? Просто интересно)
Anonim
В том коде, что я смотрел как раз таки из-за неправильно посчитанных фиксированных CRC , счетчик в ответ фигню какую-то слал. Автор того кода не делал динамический расчет CRC
Ilya
ну что первый что второй способы это динамический расчет статический это хардкод я написал свою функцию, как по мне удачная, без сдвигов
Anonim
так там запросы в счетчик одни и те же и почему-то для части запросов были неправильные CRC.
Ilya
Считает хорошо