Цитата Сообщение от МихаилГл Посмотреть сообщение
Тут вопрос для меня по одной штуке. В нормальных скадах (роквелл, сименс, хотя сименс я не считаю за нормальную, но...) я могу слать тег (бит, не важно) как "установить в 1". При этом я повторно его так же могу послать, и контроллер (при условии, что он сам сбросит этот тег) заново примет эту 1 снова, а тут надо не только в плк его сбросить, но и отработать обнуление в самой скаде. Эти костыли замучали. Или тут тоже все проще можно реализовать? Тут скада сможет "по изменению метки времени" понять, что надо на старую 1 послать новую 1...? В плк то уже есть 1 и ему пофиг на время... Или нет?
Да если выбран способ записи "по изменению времени", то скада отправит тег в плк по изменению метки времени, а значение при этом может оставаться тем же, что и было.
Если к выходу привязать параметр простого типа (bool, int...), то выход будет все время перезаписываться, потому что метка времени выхода будет меняться на каждом цикле. А если к выходу привязать параметр библиотечного типа "SYSTEM_*_PARAM", то метка времени выхода будет меняться в соответствии в меткой времени параметра. Экранные элементы (поля ввода, кнопки и тд) мы связываем с параметром целиком, то есть изменяя его через поле ввода мы меняем и значение параметра и метку времени, и значение передается на ПЛК. Если меняем параметр в программе, то нужно изменить не только его значение, но и метку времени ( Параметр_2.Value:=55; Параметр_2.SourceTime:=GET_TIME(); ), тогда значение передастся на ПЛК. В общем мы можем задавать когда параметр должен быть отправлен в ПЛК меняя его метку времени.