EasyBuilder, замеченные ошибки, пожелания усовершенствования

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

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

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение Sibiryak22 » 08 окт 2020, 07:26

подскажите, эмулятор теряет контроллер каждые несколько минут, в чём может быть причина?
Sibiryak22
 
Сообщения: 15
Зарегистрирован: 22 авг 2019, 12:04

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 08 окт 2020, 11:14

Sibiryak22 писал(а):подскажите, эмулятор теряет контроллер каждые несколько минут, в чём может быть причина?

симулятор работает только 10 минут, о чем в документации EasyBuilder и написано
simulator_time_limit.png
simulator_time_limit.png (39.43 КБ) Просмотров: 8348
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение Taulan » 04 фев 2021, 18:09

Здравствуйте! Было бы неплохо изменять цвет фона цифрового дисплея по биту с ПЛК. Например для аварии. А то приходится на нижнем слое делать дополнительную фигуру. Но она не везде помешается.

Как вставить в сообщение картинку с ПК?
Taulan
 
Сообщения: 4
Зарегистрирован: 26 янв 2021, 15:04

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение Taulan » 06 фев 2021, 22:42

Здравствуйте!
Макрос выполняется с задержкой примерно в две секунды. Интервал времени выполнения стоит 1 (100мс). Я что то не правильно делаю или это все возможности панели?
Задача макроса следить за превышением тока двигателей (64 шт) и выдавать предупреждение.
Токи двигателей считываются с ПЛК, через передачу данных с интервалом 0,2секунды, в область LW1-LW64. На цифровых индикаторах LW1-LW64 задержек нет.
Код: Выделить всё
macro_command main()
///////////////////////////////
bool Peregruz_M1 = false
bool Peregruz_M2 = false
bool Peregruz_M3 = false
bool Peregruz_M4 = false
bool Peregruz_M5 = false
bool Peregruz_M6 = false
bool Peregruz_M7 = false
bool Peregruz_M8 = false
bool Peregruz_M9 = false
bool Peregruz_M10 = false
bool Peregruz_M11 = false
bool Peregruz_M12 = false
bool Peregruz_M13 = false
bool Peregruz_M14 = false
bool Peregruz_M15 = false
bool Peregruz_M16 = false
bool Peregruz_M17 = false
bool Peregruz_M18 = false
bool Peregruz_M19 = false
bool Peregruz_M20 = false
bool Peregruz_M21 = false
bool Peregruz_M22 = false
bool Peregruz_M23 = false
bool Peregruz_M24 = false
bool Peregruz_M25 = false
bool Peregruz_M26 = false
bool Peregruz_M27 = false
bool Peregruz_M28 = false
bool Peregruz_M29 = false
bool Peregruz_M30 = false
bool Peregruz_M31 = false
bool Peregruz_M32 = false
bool Peregruz_M33 = false
bool Peregruz_M34 = false
bool Peregruz_M35 = false
bool Peregruz_M36 = false
bool Peregruz_M37 = false
bool Peregruz_M38 = false
bool Peregruz_M39 = false
bool Peregruz_M40 = false
bool Peregruz_M41 = false
bool Peregruz_M42 = false
bool Peregruz_M43 = false
bool Peregruz_M44 = false
bool Peregruz_M45 = false
bool Peregruz_M46 = false
bool Peregruz_M47 = false
bool Peregruz_M48 = false
bool Peregruz_M49 = false
bool Peregruz_M50 = false
bool Peregruz_M51 = false
bool Peregruz_M52 = false
bool Peregruz_M53 = false
bool Peregruz_M54 = false
bool Peregruz_M55 = false
bool Peregruz_M56 = false
bool Peregruz_M57 = false
bool Peregruz_M58 = false
bool Peregruz_M59 = false
bool Peregruz_M60 = false
bool Peregruz_M61 = false
bool Peregruz_M62 = false
bool Peregruz_M63 = false
bool Peregruz_M64 = false
///////////////////////////////
unsigned short M1_tok = 0
unsigned short M2_tok = 0
unsigned short M3_tok = 0
unsigned short M4_tok = 0
unsigned short M5_tok = 0
unsigned short M6_tok = 0
unsigned short M7_tok = 0
unsigned short M8_tok = 0
unsigned short M9_tok = 0
unsigned short M10_tok = 0
unsigned short M11_tok = 0
unsigned short M12_tok = 0
unsigned short M13_tok = 0
unsigned short M14_tok = 0
unsigned short M15_tok = 0
unsigned short M16_tok = 0
unsigned short M17_tok = 0
unsigned short M18_tok = 0
unsigned short M19_tok = 0
unsigned short M20_tok = 0
unsigned short M21_tok = 0
unsigned short M22_tok = 0
unsigned short M23_tok = 0
unsigned short M24_tok = 0
unsigned short M25_tok = 0
unsigned short M26_tok = 0
unsigned short M27_tok = 0
unsigned short M28_tok = 0
unsigned short M29_tok = 0
unsigned short M30_tok = 0
unsigned short M31_tok = 0
unsigned short M32_tok = 0
unsigned short M33_tok = 0
unsigned short M34_tok = 0
unsigned short M35_tok = 0
unsigned short M36_tok = 0
unsigned short M37_tok = 0
unsigned short M38_tok = 0
unsigned short M39_tok = 0
unsigned short M40_tok = 0
unsigned short M41_tok = 0
unsigned short M42_tok = 0
unsigned short M43_tok = 0
unsigned short M44_tok = 0
unsigned short M45_tok = 0
unsigned short M46_tok = 0
unsigned short M47_tok = 0
unsigned short M48_tok = 0
unsigned short M49_tok = 0
unsigned short M50_tok = 0
unsigned short M51_tok = 0
unsigned short M52_tok = 0
unsigned short M53_tok = 0
unsigned short M54_tok = 0
unsigned short M55_tok = 0
unsigned short M56_tok = 0
unsigned short M57_tok = 0
unsigned short M58_tok = 0
unsigned short M59_tok = 0
unsigned short M60_tok = 0
unsigned short M61_tok = 0
unsigned short M62_tok = 0
unsigned short M63_tok = 0
unsigned short M64_tok = 0
///////////////////////////////
unsigned short M1_pred = 0
unsigned short M2_pred = 0
unsigned short M3_pred = 0
unsigned short M4_pred = 0
unsigned short M5_pred = 0
unsigned short M6_pred = 0
unsigned short M7_pred = 0
unsigned short M8_pred = 0
unsigned short M9_pred = 0
unsigned short M10_pred = 0
unsigned short M11_pred = 0
unsigned short M12_pred = 0
unsigned short M13_pred = 0
unsigned short M14_pred = 0
unsigned short M15_pred = 0
unsigned short M16_pred = 0
unsigned short M17_pred = 0
unsigned short M18_pred = 0
unsigned short M19_pred = 0
unsigned short M20_pred = 0
unsigned short M21_pred = 0
unsigned short M22_pred = 0
unsigned short M23_pred = 0
unsigned short M24_pred = 0
unsigned short M25_pred = 0
unsigned short M26_pred = 0
unsigned short M27_pred = 0
unsigned short M28_pred = 0
unsigned short M29_pred = 0
unsigned short M30_pred = 0
unsigned short M31_pred = 0
unsigned short M32_pred = 0
unsigned short M33_pred = 0
unsigned short M34_pred = 0
unsigned short M35_pred = 0
unsigned short M36_pred = 0
unsigned short M37_pred = 0
unsigned short M38_pred = 0
unsigned short M39_pred = 0
unsigned short M40_pred = 0
unsigned short M41_pred = 0
unsigned short M42_pred = 0
unsigned short M43_pred = 0
unsigned short M44_pred = 0
unsigned short M45_pred = 0
unsigned short M46_pred = 0
unsigned short M47_pred = 0
unsigned short M48_pred = 0
unsigned short M49_pred = 0
unsigned short M50_pred = 0
unsigned short M51_pred = 0
unsigned short M52_pred = 0
unsigned short M53_pred = 0
unsigned short M54_pred = 0
unsigned short M55_pred = 0
unsigned short M56_pred = 0
unsigned short M57_pred = 0
unsigned short M58_pred = 0
unsigned short M59_pred = 0
unsigned short M60_pred = 0
unsigned short M61_pred = 0
unsigned short M62_pred = 0
unsigned short M63_pred = 0
unsigned short M64_pred = 0



/// Cчитать токи предупр с памяти панели ///
GetDataEx(M1_pred, "Local HMI", RW, 1, 1)
GetDataEx(M2_pred, "Local HMI", RW, 2, 1)
GetDataEx(M3_pred, "Local HMI", RW, 3, 1)
GetDataEx(M4_pred, "Local HMI", RW, 4, 1)
GetDataEx(M5_pred, "Local HMI", RW, 5, 1)
GetDataEx(M6_pred, "Local HMI", RW, 6, 1)
GetDataEx(M7_pred, "Local HMI", RW, 7, 1)
GetDataEx(M8_pred, "Local HMI", RW, 8, 1)
GetDataEx(M9_pred, "Local HMI", RW, 9, 1)
GetDataEx(M10_pred, "Local HMI", RW, 10, 1)
GetDataEx(M11_pred, "Local HMI", RW, 11, 1)
GetDataEx(M12_pred, "Local HMI", RW, 12, 1)
GetDataEx(M13_pred, "Local HMI", RW, 13, 1)
GetDataEx(M14_pred, "Local HMI", RW, 14, 1)
GetDataEx(M15_pred, "Local HMI", RW, 15, 1)
GetDataEx(M16_pred, "Local HMI", RW, 16, 1)
GetDataEx(M17_pred, "Local HMI", RW, 17, 1)
GetDataEx(M18_pred, "Local HMI", RW, 18, 1)
GetDataEx(M19_pred, "Local HMI", RW, 19, 1)
GetDataEx(M20_pred, "Local HMI", RW, 20, 1)
GetDataEx(M21_pred, "Local HMI", RW, 21, 1)
GetDataEx(M22_pred, "Local HMI", RW, 22, 1)
GetDataEx(M23_pred, "Local HMI", RW, 23, 1)
GetDataEx(M24_pred, "Local HMI", RW, 24, 1)
GetDataEx(M25_pred, "Local HMI", RW, 25, 1)
GetDataEx(M26_pred, "Local HMI", RW, 26, 1)
GetDataEx(M27_pred, "Local HMI", RW, 27, 1)
GetDataEx(M28_pred, "Local HMI", RW, 28, 1)
GetDataEx(M29_pred, "Local HMI", RW, 29, 1)
GetDataEx(M30_pred, "Local HMI", RW, 30, 1)
GetDataEx(M31_pred, "Local HMI", RW, 31, 1)
GetDataEx(M32_pred, "Local HMI", RW, 32, 1)
GetDataEx(M33_pred, "Local HMI", RW, 33, 1)
GetDataEx(M34_pred, "Local HMI", RW, 34, 1)
GetDataEx(M35_pred, "Local HMI", RW, 35, 1)
GetDataEx(M36_pred, "Local HMI", RW, 36, 1)
GetDataEx(M37_pred, "Local HMI", RW, 37, 1)
GetDataEx(M38_pred, "Local HMI", RW, 38, 1)
GetDataEx(M39_pred, "Local HMI", RW, 39, 1)
GetDataEx(M40_pred, "Local HMI", RW, 40, 1)
GetDataEx(M41_pred, "Local HMI", RW, 41, 1)
GetDataEx(M42_pred, "Local HMI", RW, 42, 1)
GetDataEx(M43_pred, "Local HMI", RW, 43, 1)
GetDataEx(M44_pred, "Local HMI", RW, 44, 1)
GetDataEx(M45_pred, "Local HMI", RW, 45, 1)
GetDataEx(M46_pred, "Local HMI", RW, 46, 1)
GetDataEx(M47_pred, "Local HMI", RW, 47, 1)
GetDataEx(M48_pred, "Local HMI", RW, 48, 1)
GetDataEx(M49_pred, "Local HMI", RW, 49, 1)
GetDataEx(M50_pred, "Local HMI", RW, 50, 1)
GetDataEx(M51_pred, "Local HMI", RW, 51, 1)
GetDataEx(M52_pred, "Local HMI", RW, 52, 1)
GetDataEx(M53_pred, "Local HMI", RW, 53, 1)
GetDataEx(M54_pred, "Local HMI", RW, 54, 1)
GetDataEx(M55_pred, "Local HMI", RW, 55, 1)
GetDataEx(M56_pred, "Local HMI", RW, 56, 1)
GetDataEx(M57_pred, "Local HMI", RW, 57, 1)
GetDataEx(M58_pred, "Local HMI", RW, 58, 1)
GetDataEx(M59_pred, "Local HMI", RW, 59, 1)
GetDataEx(M60_pred, "Local HMI", RW, 60, 1)
GetDataEx(M61_pred, "Local HMI", RW, 61, 1)
GetDataEx(M62_pred, "Local HMI", RW, 62, 1)
GetDataEx(M63_pred, "Local HMI", RW, 63, 1)
GetDataEx(M64_pred, "Local HMI", RW, 64, 1)


/// Считать реальные токи ///
GetDataEx(M1_tok, "Local HMI", LW, 1, 1)
GetDataEx(M2_tok, "Local HMI", LW, 2, 1)
GetDataEx(M3_tok, "Local HMI", LW, 3, 1)
GetDataEx(M4_tok, "Local HMI", LW, 4, 1)
GetDataEx(M5_tok, "Local HMI", LW, 5, 1)
GetDataEx(M6_tok, "Local HMI", LW, 6, 1)
GetDataEx(M7_tok, "Local HMI", LW, 7, 1)
GetDataEx(M8_tok, "Local HMI", LW, 8, 1)
GetDataEx(M9_tok, "Local HMI", LW, 9, 1)
GetDataEx(M10_tok, "Local HMI", LW, 10, 1)
GetDataEx(M11_tok, "Local HMI", LW, 11, 1)
GetDataEx(M12_tok, "Local HMI", LW, 12, 1)
GetDataEx(M13_tok, "Local HMI", LW, 13, 1)
GetDataEx(M14_tok, "Local HMI", LW, 14, 1)
GetDataEx(M15_tok, "Local HMI", LW, 15, 1)
GetDataEx(M16_tok, "Local HMI", LW, 16, 1)
GetDataEx(M17_tok, "Local HMI", LW, 17, 1)
GetDataEx(M18_tok, "Local HMI", LW, 18, 1)
GetDataEx(M19_tok, "Local HMI", LW, 19, 1)
GetDataEx(M20_tok, "Local HMI", LW, 20, 1)
GetDataEx(M21_tok, "Local HMI", LW, 21, 1)
GetDataEx(M22_tok, "Local HMI", LW, 22, 1)
GetDataEx(M23_tok, "Local HMI", LW, 23, 1)
GetDataEx(M24_tok, "Local HMI", LW, 24, 1)
GetDataEx(M25_tok, "Local HMI", LW, 25, 1)
GetDataEx(M26_tok, "Local HMI", LW, 26, 1)
GetDataEx(M27_tok, "Local HMI", LW, 27, 1)
GetDataEx(M28_tok, "Local HMI", LW, 28, 1)
GetDataEx(M29_tok, "Local HMI", LW, 29, 1)
GetDataEx(M30_tok, "Local HMI", LW, 30, 1)
GetDataEx(M31_tok, "Local HMI", LW, 31, 1)
GetDataEx(M32_tok, "Local HMI", LW, 32, 1)
GetDataEx(M33_tok, "Local HMI", LW, 33, 1)
GetDataEx(M34_tok, "Local HMI", LW, 34, 1)
GetDataEx(M35_tok, "Local HMI", LW, 35, 1)
GetDataEx(M36_tok, "Local HMI", LW, 36, 1)
GetDataEx(M37_tok, "Local HMI", LW, 37, 1)
GetDataEx(M38_tok, "Local HMI", LW, 38, 1)
GetDataEx(M39_tok, "Local HMI", LW, 39, 1)
GetDataEx(M40_tok, "Local HMI", LW, 40, 1)
GetDataEx(M41_tok, "Local HMI", LW, 41, 1)
GetDataEx(M42_tok, "Local HMI", LW, 42, 1)
GetDataEx(M43_tok, "Local HMI", LW, 43, 1)
GetDataEx(M44_tok, "Local HMI", LW, 44, 1)
GetDataEx(M45_tok, "Local HMI", LW, 45, 1)
GetDataEx(M46_tok, "Local HMI", LW, 46, 1)
GetDataEx(M47_tok, "Local HMI", LW, 47, 1)
GetDataEx(M48_tok, "Local HMI", LW, 48, 1)
GetDataEx(M49_tok, "Local HMI", LW, 49, 1)
GetDataEx(M50_tok, "Local HMI", LW, 50, 1)
GetDataEx(M51_tok, "Local HMI", LW, 51, 1)
GetDataEx(M52_tok, "Local HMI", LW, 52, 1)
GetDataEx(M53_tok, "plc3", D, 53, 1)
GetDataEx(M54_tok, "plc3", D, 54, 1)
GetDataEx(M55_tok, "plc3", D, 55, 1)
GetDataEx(M56_tok, "plc3", D, 56, 1)
GetDataEx(M57_tok, "plc3", D, 57, 1)
GetDataEx(M58_tok, "plc3", D, 58, 1)
GetDataEx(M59_tok, "plc3", D, 59, 1)
GetDataEx(M60_tok, "plc3", D, 60, 1)
GetDataEx(M61_tok, "plc3", D, 61, 1)
GetDataEx(M62_tok, "plc3", D, 62, 1)
GetDataEx(M63_tok, "plc3", D, 63, 1)
GetDataEx(M64_tok, "plc3", D, 64, 1)



if M1_tok >= M1_pred then
Peregruz_M1 = true
else
Peregruz_M1 = false
end if

if M2_tok >= M2_pred then
Peregruz_M2 = true
else
Peregruz_M2 = false
end if

if M3_tok >= M3_pred then
Peregruz_M3 = true
else
Peregruz_M3 = false
end if

if M4_tok >= M4_pred then
Peregruz_M4 = true
else
Peregruz_M4 = false
end if

if M5_tok >= M5_pred then
Peregruz_M5 = true
else
Peregruz_M5 = false
end if

if M6_tok >= M6_pred then
Peregruz_M6 = true
else
Peregruz_M6 = false
end if

if M7_tok >= M7_pred then
Peregruz_M7 = true
else
Peregruz_M7 = false
end if

if M8_tok >= M8_pred then
Peregruz_M8 = true
else
Peregruz_M8 = false
end if

if M9_tok >= M9_pred then
Peregruz_M9 = true
else
Peregruz_M9 = false
end if

if M10_tok >= M10_pred then
Peregruz_M10 = true
else
Peregruz_M10 = false
end if

if M11_tok >= M11_pred then
Peregruz_M11 = true
else
Peregruz_M11 = false
end if

if M12_tok >= M12_pred then
Peregruz_M12 = true
else
Peregruz_M12 = false
end if

if M13_tok >= M13_pred then
Peregruz_M13 = true
else
Peregruz_M13 = false
end if

if M14_tok >= M14_pred then
Peregruz_M14 = true
else
Peregruz_M14 = false
end if

if M15_tok >= M15_pred then
Peregruz_M15 = true
else
Peregruz_M15 = false
end if

if M16_tok >= M16_pred then
Peregruz_M16 = true
else
Peregruz_M16 = false
end if

if M17_tok >= M17_pred then
Peregruz_M17 = true
else
Peregruz_M17 = false
end if

if M18_tok >= M18_pred then
Peregruz_M18 = true
else
Peregruz_M18 = false
end if

if M19_tok >= M19_pred then
Peregruz_M19 = true
else
Peregruz_M19 = false
end if

if M20_tok >= M20_pred then
Peregruz_M20 = true
else
Peregruz_M20 = false
end if

if M21_tok >= M21_pred then
Peregruz_M21 = true
else
Peregruz_M21 = false
end if

if M22_tok >= M22_pred then
Peregruz_M22 = true
else
Peregruz_M22 = false
end if

if M23_tok >= M23_pred then
Peregruz_M23 = true
else
Peregruz_M23 = false
end if

if M24_tok >= M24_pred then
Peregruz_M24 = true
else
Peregruz_M24 = false
end if

if M25_tok >= M25_pred then
Peregruz_M25 = true
else
Peregruz_M25 = false
end if

if M26_tok >= M26_pred then
Peregruz_M26 = true
else
Peregruz_M26 = false
end if

if M27_tok >= M27_pred then
Peregruz_M27 = true
else
Peregruz_M27 = false
end if

if M28_tok >= M28_pred then
Peregruz_M28 = true
else
Peregruz_M28 = false
end if

if M29_tok >= M29_pred then
Peregruz_M29 = true
else
Peregruz_M29 = false
end if

if M30_tok >= M30_pred then
Peregruz_M30 = true
else
Peregruz_M30 = false
end if


if M31_tok >= M31_pred then
Peregruz_M31 = true
else
Peregruz_M31 = false
end if

if M32_tok >= M32_pred then
Peregruz_M32 = true
else
Peregruz_M32 = false
end if

if M33_tok >= M33_pred then
Peregruz_M33 = true
else
Peregruz_M33 = false
end if

if M34_tok >= M34_pred then
Peregruz_M34 = true
else
Peregruz_M34 = false
end if

if M35_tok >= M35_pred then
Peregruz_M35 = true
else
Peregruz_M35 = false
end if

if M36_tok >= M36_pred then
Peregruz_M36 = true
else
Peregruz_M36 = false
end if

if M37_tok >= M37_pred then
Peregruz_M37 = true
else
Peregruz_M37 = false
end if

if M38_tok >= M38_pred then
Peregruz_M38 = true
else
Peregruz_M38 = false
end if

if M39_tok >= M39_pred then
Peregruz_M39 = true
else
Peregruz_M39 = false
end if

if M40_tok >= M40_pred then
Peregruz_M40 = true
else
Peregruz_M40 = false
end if

if M41_tok >= M41_pred then
Peregruz_M41 = true
else
Peregruz_M41 = false
end if

if M42_tok >= M42_pred then
Peregruz_M42 = true
else
Peregruz_M42 = false
end if

if M43_tok >= M43_pred then
Peregruz_M43 = true
else
Peregruz_M43 = false
end if

if M44_tok >= M44_pred then
Peregruz_M44 = true
else
Peregruz_M44 = false
end if

if M45_tok >= M45_pred then
Peregruz_M45 = true
else
Peregruz_M45 = false
end if

if M46_tok >= M46_pred then
Peregruz_M46 = true
else
Peregruz_M46 = false
end if

if M47_tok >= M47_pred then
Peregruz_M47 = true
else
Peregruz_M47 = false
end if

if M48_tok >= M48_pred then
Peregruz_M48 = true
else
Peregruz_M48 = false
end if

if M49_tok >= M49_pred then
Peregruz_M49 = true
else
Peregruz_M49 = false
end if

if M50_tok >= M50_pred then
Peregruz_M50 = true
else
Peregruz_M50 = false
end if

if M51_tok >= M51_pred then
Peregruz_M51 = true
else
Peregruz_M51 = false
end if

if M52_tok >= M52_pred then
Peregruz_M52 = true
else
Peregruz_M52 = false
end if

if M53_tok >= M53_pred then
Peregruz_M53 = true
else
Peregruz_M53 = false
end if

if M54_tok >= M54_pred then
Peregruz_M54 = true
else
Peregruz_M54 = false
end if

if M55_tok >= M55_pred then
Peregruz_M55 = true
else
Peregruz_M55 = false
end if

if M56_tok >= M56_pred then
Peregruz_M56 = true
else
Peregruz_M56 = false
end if

if M57_tok >= M57_pred then
Peregruz_M57 = true
else
Peregruz_M57 = false
end if

if M58_tok >= M58_pred then
Peregruz_M58 = true
else
Peregruz_M58 = false
end if

if M59_tok >= M59_pred then
Peregruz_M59 = true
else
Peregruz_M59 = false
end if

if M60_tok >= M60_pred then
Peregruz_M60 = true
else
Peregruz_M60 = false
end if


if M61_tok >= M61_pred then
Peregruz_M61 = true
else
Peregruz_M61 = false
end if

if M62_tok >= M62_pred then
Peregruz_M62 = true
else
Peregruz_M62 = false
end if

if M63_tok >= M63_pred then
Peregruz_M63 = true
else
Peregruz_M63 = false
end if

if M64_tok >= M64_pred then
Peregruz_M64 = true
else
Peregruz_M64 = false
end if




SetDataEx(Peregruz_M1, "Local HMI", LB, 1, 1)
SetDataEx(Peregruz_M2, "Local HMI", LB, 2, 1)
SetDataEx(Peregruz_M3, "Local HMI", LB, 3, 1)
SetDataEx(Peregruz_M4, "Local HMI", LB, 4, 1)
SetDataEx(Peregruz_M5, "Local HMI", LB, 5, 1)
SetDataEx(Peregruz_M6, "Local HMI", LB, 6, 1)
SetDataEx(Peregruz_M7, "Local HMI", LB, 7, 1)
SetDataEx(Peregruz_M8, "Local HMI", LB, 8, 1)
SetDataEx(Peregruz_M9, "Local HMI", LB, 9, 1)
SetDataEx(Peregruz_M10, "Local HMI", LB, 10, 1)
SetDataEx(Peregruz_M11, "Local HMI", LB, 11, 1)
SetDataEx(Peregruz_M12, "Local HMI", LB, 12, 1)
SetDataEx(Peregruz_M13, "Local HMI", LB, 13, 1)
SetDataEx(Peregruz_M14, "Local HMI", LB, 14, 1)
SetDataEx(Peregruz_M15, "Local HMI", LB, 15, 1)
SetDataEx(Peregruz_M16, "Local HMI", LB, 16, 1)
SetDataEx(Peregruz_M17, "Local HMI", LB, 17, 1)
SetDataEx(Peregruz_M18, "Local HMI", LB, 18, 1)
SetDataEx(Peregruz_M19, "Local HMI", LB, 19, 1)
SetDataEx(Peregruz_M20, "Local HMI", LB, 20, 1)
SetDataEx(Peregruz_M21, "Local HMI", LB, 21, 1)
SetDataEx(Peregruz_M22, "Local HMI", LB, 22, 1)
SetDataEx(Peregruz_M23, "Local HMI", LB, 23, 1)
SetDataEx(Peregruz_M24, "Local HMI", LB, 24, 1)
SetDataEx(Peregruz_M25, "Local HMI", LB, 25, 1)
SetDataEx(Peregruz_M26, "Local HMI", LB, 26, 1)
SetDataEx(Peregruz_M27, "Local HMI", LB, 27, 1)
SetDataEx(Peregruz_M28, "Local HMI", LB, 28, 1)
SetDataEx(Peregruz_M29, "Local HMI", LB, 29, 1)
SetDataEx(Peregruz_M30, "Local HMI", LB, 30, 1)
SetDataEx(Peregruz_M31, "Local HMI", LB, 31, 1)
SetDataEx(Peregruz_M32, "Local HMI", LB, 32, 1)
SetDataEx(Peregruz_M33, "Local HMI", LB, 33, 1)
SetDataEx(Peregruz_M34, "Local HMI", LB, 34, 1)
SetDataEx(Peregruz_M35, "Local HMI", LB, 35, 1)
SetDataEx(Peregruz_M36, "Local HMI", LB, 36, 1)
SetDataEx(Peregruz_M37, "Local HMI", LB, 37, 1)
SetDataEx(Peregruz_M38, "Local HMI", LB, 38, 1)
SetDataEx(Peregruz_M39, "Local HMI", LB, 39, 1)
SetDataEx(Peregruz_M40, "Local HMI", LB, 40, 1)
SetDataEx(Peregruz_M41, "Local HMI", LB, 41, 1)
SetDataEx(Peregruz_M42, "Local HMI", LB, 42, 1)
SetDataEx(Peregruz_M43, "Local HMI", LB, 43, 1)
SetDataEx(Peregruz_M44, "Local HMI", LB, 44, 1)
SetDataEx(Peregruz_M45, "Local HMI", LB, 45, 1)
SetDataEx(Peregruz_M46, "Local HMI", LB, 46, 1)
SetDataEx(Peregruz_M47, "Local HMI", LB, 47, 1)
SetDataEx(Peregruz_M48, "Local HMI", LB, 48, 1)
SetDataEx(Peregruz_M49, "Local HMI", LB, 49, 1)
SetDataEx(Peregruz_M50, "Local HMI", LB, 50, 1)
SetDataEx(Peregruz_M51, "Local HMI", LB, 51, 1)
SetDataEx(Peregruz_M52, "Local HMI", LB, 52, 1)
SetDataEx(Peregruz_M53, "Local HMI", LB, 53, 1)
SetDataEx(Peregruz_M54, "Local HMI", LB, 54, 1)
SetDataEx(Peregruz_M55, "Local HMI", LB, 55, 1)
SetDataEx(Peregruz_M56, "Local HMI", LB, 56, 1)
SetDataEx(Peregruz_M57, "Local HMI", LB, 57, 1)
SetDataEx(Peregruz_M58, "Local HMI", LB, 58, 1)
SetDataEx(Peregruz_M59, "Local HMI", LB, 59, 1)
SetDataEx(Peregruz_M60, "Local HMI", LB, 60, 1)
SetDataEx(Peregruz_M61, "Local HMI", LB, 61, 1)
SetDataEx(Peregruz_M62, "Local HMI", LB, 62, 1)
SetDataEx(Peregruz_M63, "Local HMI", LB, 63, 1)
SetDataEx(Peregruz_M64, "Local HMI", LB, 64, 1)


end macro_command
Taulan
 
Сообщения: 4
Зарегистрирован: 26 янв 2021, 15:04

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 08 фев 2021, 11:52

Taulan писал(а):Как вставить в сообщение картинку с ПК?

загрузить картинкку на сторонний хостинг картинок, а сюда вставить ссылку в обрамлении тегов [Img]
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 08 фев 2021, 12:23

Taulan писал(а):Здравствуйте! Было бы неплохо изменять цвет фона цифрового дисплея по биту с ПЛК. Например для аварии. А то приходится на нижнем слое делать дополнительную фигуру. Но она не везде помешается.


Это можно компактно реализовать двумя способами:
1) Битовый индикатор как рамка
2) Битовый индикатор как фон

в итоге сгруппировать два объекта (битовый индикатор и числовой ввод/вывод) для удобного перемещения/копирования

alarm_pad_frame.png
alarm_pad_frame.png (2.24 КБ) Просмотров: 7717
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 08 фев 2021, 12:46

Taulan писал(а):Здравствуйте!
Макрос выполняется с задержкой примерно в две секунды. Интервал времени выполнения стоит 1 (100мс). Я что то не правильно делаю или это все возможности панели?
Задача макроса следить за превышением тока двигателей (64 шт) и выдавать предупреждение.
Токи двигателей считываются с ПЛК, через передачу данных с интервалом 0,2секунды, в область LW1-LW64. На цифровых индикаторах LW1-LW64 задержек нет.


Вариант грамотного решения вашей заадчи мониторинга одной величины относительно другой - делать это в ПЛК, а наружу выводить только бинарный результат сравнения "Ток выше нормы"=ДА/НЕТ (Peregruz_M1). ПЛК то тоже должен реагировать на превышение технологическим параметром уставки...... а отображение на HMI уже вторично ....

Для этого в HMI предназначена подсистема алармов. В панелях Weintek она называется Журнал событий (Аварий) и расположена на вкладке Данные/История.
Если в ПЛК уже есть результат сравнения как битовый тег (Peregruz_M1), то создаете аларм с типом БИТ.

Если сравнивать все-таки будете в панели, то создаете аларм с типом слово. В адресе чтения указываете технологический параметр, за которым надо следить. В условии устанавливаете флажки "Динамическое состояние значения" и "Читать/использовать разные адреса" и указать тег-уставку

alarm_word.png
alarm_word.png (17.69 КБ) Просмотров: 7717


Все это можно проделать в MS Excel и импортировать в билдер (см. страницу 115 в Руководстве EasyBuilder Pro ).
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 08 фев 2021, 18:07

Taulan писал(а):
Код: Выделить всё
macro_command main()

/// Cчитать токи предупр с памяти панели ///
GetDataEx(M1_pred, "Local HMI", RW, 1, 1)
GetDataEx(M2_pred, "Local HMI", RW, 2, 1)
GetDataEx(M3_pred, "Local HMI", RW, 3, 1)
. . .
. . . .
. . . . .

GetDataEx(M61_pred, "Local HMI", RW, 61, 1)
GetDataEx(M62_pred, "Local HMI", RW, 62, 1)
GetDataEx(M63_pred, "Local HMI", RW, 63, 1)
GetDataEx(M64_pred, "Local HMI", RW, 64, 1)
end macro_command


когда читаете адреса подряд, то используйте метод чтения массивом - это оптимально с точки зрения запросов к ПЛК

Код: Выделить всё
GetDataEx(M1_pred[0], "Local HMI", RW, 1, 64)
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение AlexS » 16 мар 2021, 11:17

Здравствуйте!
При использовании функции Word Lamp/ Multi-State Switch (Word Lamp, 55 states, Label: Align - Center) я обнаружил, что часть изображений было расположено в центре окна, как и запрограммировано, а часть в левой стороне или сверху окна. Использование возможностей окна Align (вкладка Label: Left, Center, Right) не помогло. Как решить эту проблемму?
AlexS
 
Сообщения: 2
Зарегистрирован: 16 мар 2021, 09:44

Re: EasyBuilder, замеченные ошибки, пожелания усовершенствования

Сообщение 8bit » 16 мар 2021, 12:00

AlexS писал(а):Здравствуйте!
При использовании функции Word Lamp/ Multi-State Switch (Word Lamp, 55 states, Label: Align - Center) я обнаружил, что часть изображений было расположено в центре окна, как и запрограммировано, а часть в левой стороне или сверху окна. Использование возможностей окна Align (вкладка Label: Left, Center, Right) не помогло. Как решить эту проблемму?


Label - это ярлык, метка = текстовая надпись и выравнивание на вкладке Label относиться к выравниванию текста относительно границ объекта Word Lamp
Картинки и фигуры находятся на вкладке Shape
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Пред.След.

Вернуться в Weintek

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6