Стартовая страница › Форумы › Понять, как работает ПО › Формула изменения канала при изменении второго канала.
- В этой теме 11 ответов, 3 участника, последнее обновление 8 лет, 8 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
20.09.2017 в 20:39 #7344
p001p
УчастникДень добрый.
Есть канал управления 1 (КУ1), он производит запись в какую-то переменную на контроллере.
Есть входной канал 2 (ВК2), который меняется в зависимости от значения приходящего на него внутри ПЛК.Задача,
1. Проверить что канал КУ1 != ВК2 и записать в КУ1 значение с ВК2.Вопрос, как реализовать при помощи формул? Я так понимаю надо делать доп. входной канал Дорасчетный ТС?
20.09.2017 в 22:29 #7349
manjey73УчастникВ корне неправильная постановка вопроса. Надо согласно ВК2 записывать в КУ1 ?
Какой смысл проверять, что КУ1 не равен входному каналу ?
Скажем так, либо постоянно писать в КУ1 значение ВК2, если оно не меняется, то ничего и не произойдет ужасного. В любом случае нужен Модуль автоматического управления, так как просто Формулы не влияют на каналы управления.20.09.2017 в 23:54 #7353
MikhailМодераторКанал управления не хранит значение, он только описывает, как отправляется команда.
Правильно ли я понял, что нужно при изменении входного канала, передавать новое значение на контроллер? Если да, то в новом Модуле автоматического управления есть триггер на изменение. Правда, новая версия пока не выложена, но могу прислать.
21.09.2017 в 09:32 #7357p001p
УчастникДа, ситуация складывается такая, что контроллер, Segnetics SMH2G(i) и Segnetics Pixel, не поддерживает сквозную запись в переменную.
Т.е. ТОЛЬКО одна переменная MODBUS и ТОЛЬКО одна перменная вводимая с экрана контроллера, тем самым мы получаем смешную ситуацию, когда введёное повтороно значение в перменную Modbus — не записывается.
Тем самым надо организовать что-то вроде «обратной связи»
Если изменилось значение ВК2, то оно должно записаться через КУ1 в переменную на контроллере.Если хотите почувствовать всю «костыльность» решения на данном контроллере.
Правильно ли я понял, что нужно при изменении входного канала, передавать новое значение на контроллер? Если да, то в новом Модуле автоматического управления есть триггер на изменение. Правда, новая версия пока не выложена, но могу прислать.
Совершенно верно! Отследить изменение входного канала, который считывает значение с переменной в контроллере — передать его на контроллер через канал управления, но в другую переменную =)
21.09.2017 в 21:58 #7360
manjey73УчастникЯ так понимаю, программу в ПЛК писали не вы ? обычно предусматривают такие вещи программно в ПЛК, чтобы менять уставку можно было как с экрана, так и через сетевую переменную. Это проблема не только Pixel но и других ПЛК при подключении панели. Если программно не предусмотрели, тогда только через Модуль авто управления.
21.09.2017 в 22:44 #7361
manjey73УчастникПочитал тему, но регистрироваться там нет желания, поэтому напишу здесь.
Вся проблема возможно кроется не в невозможности записать или считать переменную из разных источников, а в том, что программа ПЛК крутится несколько мс и в некоторых случаях программно переписывается переменная, которую вы пытаетесь изменить по сети. А сетевой обмен куда дольше, чем цикл программы.
Обычно используют разные переменные для чтения и записи и разделяют их по времени….21.09.2017 в 23:05 #7362
manjey73УчастникЧестно, не знаю программную часть Сигнетика. На Овен с подключенной панелью реализовывал программно контроль переменной. Пнель пишет и читает свою переменную. По сети пишется и читается своя переменная. В программе ПЛК происходит сравнение, если пришла переменная по сети, отправить ее в панель. Если пришла переменная от панели и она отличается от сетевой, отправить ее в сеть.
Делал через ENO блоков22.09.2017 в 08:36 #7366
MikhailМодераторВ любом случае ссылка на новую версию модуля http://rapidscada.ru/download/mod_auto_control/mod_auto_control_5.2.1.0_ru.zip
Надеюсь, на следующей неделе выйдет новая версия Rapid SCADA. Настоятельно рекомендую обновиться, т.к. в Сервере была обнаружена ошибка, которая заключается в том, что функция Val() кратковременно возвращает 0.
22.09.2017 в 09:40 #7368
manjey73УчастникМихаил, эта ошибка могла влиять на периодический сброс в 0 переменных в моих формулах Retain ?
22.09.2017 в 16:16 #7370
MikhailМодераторЕсли версия сервера 5.1.0.0 и при этом Вы использовали функцию Val(), то да.
Фикс: https://yadi.sk/d/Mpk9D0l13N8ADw22.09.2017 в 16:52 #7372
manjey73УчастникДа, версия 5.1.0.0 на Raspberry
Я так понимаю это не для версии Mono, а для Windows ?23.09.2017 в 23:50 #7374
MikhailМодераторДа. Скоро выйдет официальная версия, в том числе для Моно.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.