PDA

Просмотр полной версии : Вопрос по интерфейсу RS-485



Hemann
19.12.2020, 10:32
Коллеги, добрый день!

У нас есть работающая программа, обеспечивающая взаимодействие с расходомерами ЭМИС-Масс. Сейчас встала задача организовать сброс управляемых счетчиков массы этих расходомеров. И тут мы столкнулись с проблемой. Дело в том, что обмен данными с расходомерами построен через прописывание интерфейсов в Конфигурации ПЛК, а сброс этих самых управляемых счетчиков производится воздействием на определенный бит управления расходомера функцией 05 протокола Modbus. Но эта функция в Конфигурации ПЛК не поддержана. Можно, конечно, прописать ее через библиотеки, типа Modbus.lib. Насколько я помню, одновременная работа по одному и тому же интерфейсу через Конфигурацию ПЛК и через библиотеки не возможна. А это значит полностью переписывать всю программу, что мягко выражаясь, крайне не желательно.
Есть ли еще какой-то выход из создавшегося положения? Или, все-таки, можно совместить работу через Конфигурацию ПЛК и через библиотеки на одном последовательном интерфейсе?

melky
19.12.2020, 20:24
лень ставить CodeSys но разве там нет команды 05 ?

capzap
19.12.2020, 21:13
Конфигурацию ПЛК и через библиотеки не возможна. А это значит полностью переписывать всю программу

да почему полностью то, именованные переменные модбаса располагаются в глобальных переменных. Надо то всего написать модуль по работе с протоколом через бибку и определенные регистры присвоить глобальным переменным которые были в модбасконфигураторе, это быстрее чем ждать ответа на вопрос которого не существует

Hemann
20.12.2020, 09:22
Правильно ли я понимаю, что если у нас есть в Конфигураторе ПЛК некий модбас-регистр с именем Name1, он отображается в глобальных переменных? А вот дальше не совсем понял. Пишем модуль который будет в этот регистр с именем Name1 отправлять правильные модбас-посылки (адрес, команду, данные, CRC), сформированные библиотекой?

capzap
20.12.2020, 09:51
Правильно ли я понимаю, что если у нас есть в Конфигураторе ПЛК некий модбас-регистр с именем Name1, он отображается в глобальных переменных?
а зачем понимать, подключились онлайн к работающему плк и открыли глобальные переменные, там и обнаружите свои именованние регистры модбаса отдельным списком

Следовательно, удалив конфигурацию, в глобальных пишете весь тот список который видели в онлайн и в модуле(ФБ/функция) который будет опрашивать слейвы будете либо присваивать(если это регистры для чтения) либо читать чтоб сделать запись в слейв

Hemann
20.12.2020, 09:56
А при открытии COM-порта библиотека не ругнется, что порт занят? Или вообще всю ветку Модбаса удалять из Конфигурации? Это, как раз, крайне нежелательный сценарий, влекущий за собой полное переписывание всей программы

Hemann
20.12.2020, 12:51
так о чем и речь! чего делать очень не хотелось - к тому и пришли