вопреки хэлпу кодезиса (по крайней мере на ПЛК100) сброс убивает все переменные.
Вид для печати
вопреки хэлпу кодезиса (по крайней мере на ПЛК100) сброс убивает все переменные.
если чем то поможет, вот ссылка на видео http://www.owen.ru/forum/showpost.ph...0&postcount=15 , ну и соответственно саму тему почитать с первых постов, а так же на диске в разделе системных библиотек есть документация на бибку по работе с памятью
товарищи, у меня разрыв шаблона в мозгу. Нужно склеить 2 переменные типа BYTE в одну типа WORD. Делаю
x:=16#A3;
y:=16#B9;
xy:=SHL(x,8) + y; и на выходе получаю 16#00B9. тоже самое если сдвиг написать руками умножив x на FF. Непонимаю почему так? х просто теряется.
Еще проще
xy:=x*256+y;
Все приведения типов здесь уже есть.
попробуйте такую форму 16#0100, а то как бы разница то есть, а еще лучше указать тип дополнительно
В книге Петрова И.В. (Программируемые контроллеры приводится такой пример):
Цитата:
Как было описано выше, ПЛК функционирует циклически — чтение входов, выполнение прикладной программы и запись выходов. В результате прикладное программирование для МЭК ПЛК существенно отличается от традиционной модели, применяемой при работе на языках высокого уровня ПК. Рассмотрим в качестве иллюстрации простейшую задачу: необходимо запрограммировать мерцающий световой индикатор. Очевидно, что алгоритм должен быть примерно такой:
1) включить выход;
2) выдержать паузу;
3) выключить выход;
4) выдержать паузу;
5) переход к шагу 1 (начало программы);
6) конец программы.
Реализованная по этому алгоритму программа для ПЛК работать не будет:
- она содержит бесконечный цикл. Весь код прикладной программы выполняется от начала и до конца в каждом рабочем цикле, поэтому шаг 5 «переход на начало программы» лишний.
- выход всегда будет оставаться в выключенном состоянии, поскольку физически установка значений выходов производится по окончании прикладной программы один раз. Промежуточные изменения значений выходов не отображаются на аппаратные средства. Конечно, значение переменной будет изменяться многократно, но определяющим выход станет только последнее значение.
А теперь вопрос - Как реализовать этот неправильный пример, чтобы он действительно не работал? (как сделать правильно я знаю). :confused: