1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Макрос Weintek

Модератор: специалисты Weintek

Ответить

Автор темы
Serg290
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 30 май 2019, 15:12
Имя: Сергей
Благодарил (а): 2 раза

Макрос Weintek

Сообщение Serg290 »

Добрый день.
Я новичек. помогите решить задачу, пожалуйста. Есть два тумблера/битовый переключатель. Задача такова:
Когда первый тумблер включен, второй не может включиться (включается но переключается назад). Когда второй включен, нельзя включить первый.
В макросах я не силен но попробовал написать. Работает не так как надо. Второй тумблер нельзя включить даже при выключенном первом. Помогите пожалуйста решить задачу правильно. Заранее спасибо.

macro_command main()
bool w, r
GetData(w, "MODBUS RTU (Adjustable)", 4x_Bit, 530.00, 1)
GetData(r, "MODBUS RTU (Adjustable)", 4x_Bit, 541.00, 1)
if w == true then
r = false
end if
SetData(r, "MODBUS RTU (Adjustable)", 4x_Bit, 514.00, 1)
end macro_command

Изображение

Автор темы
Serg290
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 30 май 2019, 15:12
Имя: Сергей
Благодарил (а): 2 раза

Макрос Weintek

Сообщение Serg290 »

Тема закрыта. Разобрался. Макрос - может кому пригодится (новичкам)

macro_command main()
bool w, r
GetData(r, "MODBUS RTU (Adjustable)", 4x_Bit, 514.00, 1)
if w == true then
r = false
SetData(r, "MODBUS RTU (Adjustable)", 4x_Bit, 514.00, 1)
end if
GetData(w, "MODBUS RTU (Adjustable)", 4x_Bit, 530.00, 1)
if r == true then
w = false
SetData(w, "MODBUS RTU (Adjustable)", 4x_Bit, 530.00, 1)
end if
end macro_command

iceman
здесь недавно
здесь недавно
Сообщения: 22
Зарегистрирован: 15 фев 2018, 07:17
Имя: Александр
Поблагодарили: 7 раз

Макрос Weintek

Сообщение iceman »

День добрый.

Странности какие-то в макросах. В первом примере Get и Set для переменной r делаете с разных адресов.
Во втором примере. If для переменно w, а Get для переменной r и так же в другой проверке. И это правильно работает?
Ответить

Вернуться в «WEINTEK (операторские панели)»