PDA

Просмотр полной версии : Шестнадцатеричные команды в CoDeSys



Р.Александр
23.03.2019, 15:15
Возникла необходимость управлять с помощью ПЛК-110-М02 по Моdbus RTU ШД через контроллер OSM-88RA. Данные у него записываются в регистры в формате DWORD, но команды на движение и так далее там указаны в шестнадцатеричном виде. В описании CoDeSys не указана возможность использования шестнадцатеричных команд, или я просто не нашел. Регистры напрямую не принимают такие команды
Коротко, чтобы двигатель начал вращаться , нужно послать в контроллер команду 0x03, чтобы остановился - 0x00, просто 3 и 0 контроллер ШД не принимает. 0x03 и 0x00 не принимает ПЛК.
Кто то решал подобные задачи ?

ASo
23.03.2019, 18:53
Формат записи 16#**.
Но 3 и 0 одинаковы в 10 и 16 ричных системах. Поэтому что-то Вы не то написали.

capzap
23.03.2019, 19:54
возможно, если по модбас отправляется DWORD то может стоит поменять слова местами

Р.Александр
23.03.2019, 21:19
Формат записи 16#**.
Но 3 и 0 одинаковы в 10 и 16 ричных системах. Поэтому что-то Вы не то написали.
Я написал как пример. Можете представить себе как 0х0А, там такая команда тоже есть, не помню, что значит.
Похоже, нужно в регистры ПЛК записывать в формате BYTE десятеричные значения, соответствующие шестнадцатеричным командам, ну, а уж в контроллер придет то, что нужно.
По крайней мере, я отыскал примеры на сайте производителя контроллера, там делается именно так. В понедельник соберу стенд и проверю, что получается.