Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Добрый день, есть много однотипных устройств на экране СП307. при нажатии на это устройство на панели появляется всплывающее окно управления этим устройством(старт-стоп авто-ручное). Так вот, чтобы не плодить для каждого устройства новое окно, хотелось бы сделать одно для всех. т.е. при вызове окна стартовал макрос и адреса регистров управления устройством передавались в виде указателей на эти регитсры в окно управления устройством. Может есть у кого рабочий пример макроса?
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Приветствую Уважаемые.
Вопрос следующего характера - как я правильно понимаю - некого готового таймера или подобной функции в панели нет?
Смысл в следующем - требуется изменять некую уставку для вторичников с неким интервалом по графику. Поскольку ничего не нашел - пока мысль - функциональная кнопка, которая запускает макрос. При запуске макрос скидывает в некую переменную регистр PSW38 - время от включения панели (ну или его преобразование в минуты) а дальше по банальному if.. else if в от разницы PSW38 и сохраненной переменной присваиваем значение уставки.
Или есть более изящное решение?
В панели есть импульсы 100ms, 300ms, 500 ms (системные регистры), секундные (сколько надо секунд) и минутные доступны в ФО (функц. области), можно отсчитать любое время,
а так же 4 страницы назад выложен таймер отсчёта времени без макросов, с подробным описанием ещё на страницу
https://owen.ru/forum/showthread.php...&page=291#2910
Последний раз редактировалось kondor3000; 25.09.2023 в 19:39.
Благодарствую - попробую разобраться.
На данный момент пока пошел "дубовым путём"- через условия - надо прогнать оборудование на пробном пуске.
Но столкнулся со странной штукой - регистр PSW[38] достигает 65535 и обнуляется. То сть логично - если это младшее слово. Но есть еще и старшее - почему оно не подтягивается?
Конструктив примерно такой
T_Start = MAKEDWORD(PSW[38],PSW[39]); // стартуем, записываем время старта
T_tek = MAKEDWORD(PSW[38],PSW[39]); // берем текущее время
PSW[308] = Ustavka; // пишем текущую уставку в регистр
switch ((T_tek - T_Start) / 600)) // получаем разницу в минутах от начала старта
дальше несколько case - по каждой разнице своя уставка присваивается в переменную Ustavka. Когда PSW[38] становится 0 - подставляется первая уставка. Не могу понять что не так.
Запаковал в зип пример. На основном экране крутится функциональная область, которая считывает регистры с ПЛК и пишет их во внутреннюю память панели (потому что регистры ПЛК области 3х, не могут быть разбиты на на биты в панеле для вывода статусов устройства). При нажатии кнопки во всплывающем окне устройстве, пишем значение бита в регистре и записываем этот внутренний регистр в регистр ПЛК. Всё просто. Немного не понятен синтаксис как это реализовать. Как работать с указателями в этой панельке я не нашёл, вообще по макросам мало инфы.
Да, так уж вышло. 3х читаем статусы, а команды управления пишем в 4х.