EasyBuilder - Скорая помощь новичкам

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Euvzhik » 18 ноя 2011, 07:42

Здравствуйте.
Возникла такая ситуация:
Необходимо вести учет значенй, меняющихся в пределе 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. И привязала к тренду.
Суть проблемы:
Проверяла на стнеде, где был реальный контроллер и симулятор панели на ПК. На симуляторе все работает превосходно, тренд отображает не целые значения, а дробные как задумано! Но на реальной панели почему-то на тренде ничего не отображается. Такое впечатление, что макрос не выполняется. Пыталась с помощью кнопки принудительно запускатб макрос, результатов не дало.
Не подскажете в чем проблема?
Euvzhik
 
Сообщения: 1
Зарегистрирован: 18 ноя 2011, 07:13

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 24 ноя 2011, 12:57

Euvzhik, здравствуйте.
Попробуйте пойти другим путем.
Например, не используйте макрос с вечным циклом, а запускайте его ПЛК-триггером в режиме "всегда активен".
С таким триггером, макрос:
Код: Выделить всё
int i
float f
f=0
SetData(f, "Local HMI", LW, 1, 1)
GetData(i, "Local HMI", LW, 0, 1)
f=i
f=f/100
SetData(f, "Local HMI", LW, 1, 1)
работает прекрасно. Проверял на панели.
Успехов.
VanMo
 
Сообщения: 378
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Galaxy » 25 ноя 2011, 10:18

Здравствуйте, скажите пожалуйста, можно ли применить макрос, описанный в предыдущем примере, в том случае, когда требуется вывести на панель значение температуры ( дробное число, с двумя знаками после запятой) ?
Galaxy
 
Сообщения: 2
Зарегистрирован: 25 ноя 2011, 10:12

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 28 ноя 2011, 10:08

Galaxy писал(а):Здравствуйте, скажите пожалуйста, можно ли применить макрос, описанный в предыдущем примере, в том случае, когда требуется вывести на панель значение температуры ( дробное число, с двумя знаками после запятой) ?

Здравствуйте. В описанном примере макрос переводит целую переменную в вещественную и делит на 100. Это может быть полезно, если температура приходит в виде целого числа без запятой и необходимо выполнять с ней дополнительные вычисления.
Можно еще поставить точку в нужном месте, если используется цифровой дисплей. Для этого в свойствах объекта в формате чисел нужно указать количество знаков после запятой.
VanMo
 
Сообщения: 378
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Sergei » 06 дек 2011, 10:40

Добрый день. может кто-нибудь знает, как разложить 16 разрядное число на биты и записать их в адреса LB. И какой примерно будет код программы в макросе. заранее спасибо
Sergei
 
Сообщения: 4
Зарегистрирован: 10 окт 2011, 09:20

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Denis » 09 дек 2011, 09:58

А вы уверены, что вам нужно использовать LB ? Может быть проще использовать слово LW и его биты LW_bit ?
Denis
Администратор
 
Сообщения: 147
Зарегистрирован: 15 авг 2011, 18:33
Откуда: Санкт-Петербург

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Sergei » 12 дек 2011, 14:16

Denis писал(а):А вы уверены, что вам нужно использовать LB ? Может быть проще использовать слово LW и его биты LW_bit ?

А можно поподробнее как это сделать???
Sergei
 
Сообщения: 4
Зарегистрирован: 10 окт 2011, 09:20

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 16 дек 2011, 09:52

Sergei писал(а):А можно поподробнее как это сделать???

Адрес LW_bit имеет формат "Адрес LW регистра:номер бита".
VanMo
 
Сообщения: 378
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение AndreiM » 21 дек 2011, 15:27

Здравствуйте. Первый раз работаю с Easybuilder, поэтому вопрос может показаться дилетантским. Скачал библиотеку FAN, вставил в свой проект изображение (что-то вроде пропеллера). у него два состояния. Одно статическое, другое анимированное. Можно ли менять состояния при работе проекта (панель оператора связана с контроллером Delta. Мне нужно, чтобы при включении соответствующего выхода состояние изображения на панели менялось на анимированное)
AndreiM
 
Сообщения: 2
Зарегистрирован: 21 дек 2011, 15:09

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 22 дек 2011, 10:57

AndreiM писал(а):Здравствуйте. Первый раз работаю с Easybuilder, поэтому вопрос может показаться дилетантским. Скачал библиотеку FAN, вставил в свой проект изображение (что-то вроде пропеллера). у него два состояния. Одно статическое, другое анимированное. Можно ли менять состояния при работе проекта (панель оператора связана с контроллером Delta. Мне нужно, чтобы при включении соответствующего выхода состояние изображения на панели менялось на анимированное)

Здравствуйте. Состояние объекта привязано к какому либо регистру, соответственно меняя значение регистра, вы меняете состояние. Это может быть и битовый индикатор с двумя состояниями, который привязан к одному из битов регистра панели или контроллера.
VanMo
 
Сообщения: 378
Зарегистрирован: 16 авг 2011, 09:31

Пред.След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], GTS, vladi552 и гости: 3