Прямой счет это когда в SDO(#6000) 0-ой бит в 0. А у нас по умолчанию стоит значение этого байта 3. В object Dictionary так и стоит 3. Нам нужно чтобы было 2. В программе пишем в нужном нам месте
Код
tmpInt[1] := 0;
tmpInt[2] := 2;
WRITE_VAR(ADDM('0.0.2.2'),
'SDO',
16#00006000,(* 16#00006000,*)
0,
tmpInt,
Signal.AbsEncHoriz.Management_Parameter);
tmpInt[2] := 2;
WRITE_VAR(ADDM('0.0.2.2'),
'SDO',
16#00006000,(* 16#00006000,*)
0,
tmpInt,
Signal.AbsEncHoriz.Management_Parameter);
Это фрагмент секции проги для ПЛК BMX P34 20302 на языке ST. Дебажил. До данного места доходит, пишет в SDO. Но в SDO как была 3 так и стоит. Проверял в OsiCoder CAN Open.
Что делать? Как изменить данные в Object Dictionary?
Очень нужна помощь. Сидим на пусконаладке. Уже несколько месяцев пытаемся заставить энкодер работать нормальным образом.