PDA

Просмотр полной версии : Как проконтролировать работу датчика?



asupsp700
25.01.2012, 22:59
Уважаемые форумчане, прошу у Вас помощи.
Пишу первую программу на языке LD для ПЛК-160.
Задача- есть два датчика давления на газ и воздух ПД-10, подключенные на аналоговые входы AI1 и AI2.
Мне нужно, в программе отслеживать аварийные ситуации этих датчиков (неисправность датчика, обрывы линии и тд.). В руководстве на ПЛК нашел описание поведения модуля "Analog input" в исключительных ситуациях, цитирую:
"При возникновении исключительных ситуаций, в результате измерения соответствующего канала ( старший байт переменной типа REAL) устанавливается специальное значение соответствующее исключительной ситуации."
Подскажите пожалуйста на примере как правильно это сделать?
Заранее спасибо за ответы.

capzap
26.01.2012, 08:36
VAR
foo: POINTER TO DWORD;
AI0: REAL;
AI1: DWORD;
bar: BYTE;
END_VAR

foo:=ADR(AI0);
(*foo:=ADR(AI1);*)
bar:=DWORD_TO_BYTE((SHR(foo^,24) AND 16#FF));попробуйте такую конструкцию

PS маска нужна для того чтобы выделять конкретный бит, ну и много еще для чего, если нужен полностью байт можно и без неё

asupsp700
26.01.2012, 12:57
К сожаление только разбираюсь с ПЛК. Осваиваю языки LD и FBD.
Как Вашу конструкцию использовать не знаю.

Валенок
26.01.2012, 13:04
Если начинаете - не засоряйте мозг. Попробуйте лучше CFC - здесь под ним подразумевается то, что у некоторые другие называют FBD

1.Поставьте квадрат, ткните на AND, нажмите F2, слева внизу - "операторы преобразования" - справа ищите DWORD_TO_BYTE
2. -/- "FBD операторы " - ищите SHR
...

asupsp700
28.01.2012, 12:01
Скажите а если пойти таким способом?, нормально будет? В программе вроде получается.

asupsp700
30.01.2012, 09:14
Гляньте пожалуйста.