PDA

Просмотр полной версии : ПЛК160 и связь по ModBus



denkrauss
10.02.2015, 09:32
Здравствуйте. Прошу помощи в решении следующего вопроса.
В наличии ПЛК160 и сервопривод Kollmorgen AKD. Задача: Изменение переменной привода (напряжение аналогового выхода) программой ПЛК по ModBus. Связь установил через Ethernet. Связь работает, так как уже пробовал менять один из параметров привода через ModBus (читал и перезаписывал - все работает). В описании к сервоприводу опробованный мною параметр должен был занимать 8 bit, однако CoDeSys его увидел только тогда, когда я добавил "32bit input modul". А необходимая мне переменная в описании занимает 64bit.
Подскажите, пожалуйста, возможно ли в CoDeSys считать или перезаписывать параметры объемом в 64 bit. Какой модуль добавлять?
В настройке сетевых обменов я новичок, так что не судите строго, если что) Спасибо.
На рисунке параметр, который мне удается менять через ModBus - DRV.DIR (направление вращения двигателя), а тот, который необходимо - AOUT.VALUEU (напряжение аналогового выхода).

capzap
10.02.2015, 10:13
если Вы где то увидели 8бит либо 64бит, это вовсе не означает что относится к размерности переменных по протоколу модбас, например чуть выыше на картинке для профинета написано что drv.dir занимает 2(16) октета, а auot.valueu 8(64) октетов, уже неувязочка выходит. Написано что data type один параметр Int, а второй Float вот из этого и исходите, первому должно быть достаточно регистра, а второму реала

denkrauss
11.02.2015, 16:25
если Вы где то увидели 8бит либо 64бит, это вовсе не означает что относится к размерности переменных по протоколу модбас, например чуть выыше на картинке для профинета написано что drv.dir занимает 2(16) октета, а auot.valueu 8(64) октетов, уже неувязочка выходит. Написано что data type один параметр Int, а второй Float вот из этого и исходите, первому должно быть достаточно регистра, а второму реала

Взял другой параметр привода, 32bit, буду использовать его в программе. 64bit-ный параметр так и не удалось ни считать, ни записать. Попробовал много параметров привода (8bit, 32bit) - все считываются и перезаписываются, как только в описании на какой нибудь параметр указывается 64bit - глухо.

petera
11.02.2015, 16:40
Взял другой параметр привода, 32bit, буду использовать его в программе. 64bit-ный параметр так и не удалось ни считать, ни записать. Попробовал много параметров привода (8bit, 32bit) - все считываются и перезаписываются, как только в описании на какой нибудь параметр указывается 64bit - глухо.
Какие 64bit:confused:
Вам же русским языком сказали, что тип данных для параметров Float!!
16697
А для этого нужно использовать модули Real input или Real output, это и будут Ваши 32bit
16698
Т.к. порядок байт при передаче Real по MOdbus может быть разным, то возможно нужно будет поиграться с этим параметром
16699