Возникла такая ситуация:
Необходимо вести учет значенй, меняющихся в пределе 0 - 2 единиц (0,42; 0,50 и т.п.) с помощью трендов.
Панелька Wientek 6070iH связана с контроллером Mitsubishi FX2N. В регистрах контроллера дробные числа отображаются без запятой (пр. 1,42 отображается как 142).
Чтобы передать на тренд дробное значение я использовала макрос следующего содержания:
- Код: Выделить всё
- macro_command main()
int f
int v11,v12,v13
float v14,v15
while f<10 // для обеспечения бесконечного цикла (F никогда не будет больше 10)
GetData(v11, "MITSUBISHI FX2n", D, 100, 1)
v12=v11/100
v13=v11%100
v14=v13*0.01
v15=v12+v14
SetData(v15, "Local HMI", LW, 700, 1)
wend
end macro_command
В параметрах проекта установила галочку на Execute init. MACRO when power on и указала соответствующй макрос.
Затем создала в DataSampling новую выборку данных для регистра LW700. И привязала к тренду.
Суть проблемы:
Проверяла на стнеде, где был реальный контроллер и симулятор панели на ПК. На симуляторе все работает превосходно, тренд отображает не целые значения, а дробные как задумано! Но на реальной панели почему-то на тренде ничего не отображается. Такое впечатление, что макрос не выполняется. Пыталась с помощью кнопки принудительно запускатб макрос, результатов не дало.
Не подскажете в чем проблема?