Код программыв Master
Часть1 (Прием входных сигналов от Slave)
LD 1
[%MW20:=16#0106] //01-код приема/передачи; 06- 6 байтов запроса (от %MW2 %MW4)
[%MW21:=16#0300] //03- смещение для полученных данных
[%MW22:=16#0101] //Адресс Slave 01; 01- код функции (читать биты)
[%MW23:=16#0000] //0000- от адресс Slave %M0
[%MW24:=16#0005] //0005 – количество битов 5 (от %MW0 до %MW4)
LD 1
AND %MSG3.D
[EXCH3 %MW20:10]
//Биты записывают в %MW27-%MW29
//Вводим их в соответственные адрессы
LD [%MW27=16#0100]
OR [%MW27=16#0101]
ST M_sen0
LD [%MW27=16#0001]
OR [%MW27=16#0101]
ST M_sen1
LD [%MW28=16#0100]
OR [%MW28=16#0101]
ST M_sen2
LD [%MW28=16#0001]
OR [%MW28=16#0101]
ST M_card
LD [%MW29=16#0100]
OR [%MW29=16#0101]
ST M_sbros
Часть 2 (Главная часть, для управления режимами.)
BLK M_counter //установка счетчика
LD M_sbros
R
LD M_IN
CU
LD M_OUT
CD
END_BLK
--LD [M_counter.V >=M_max] //Если количество машин привышет мак. значения
ST M_full //перегрузка
S M_doorClose //Дверь закрывается
R M_doorOpen
R M_shlak // Шлагбаум закрывается
--BLK M_PULSE //установка таймера мигания светофоров
LDN M_PU
IN
OUT_BLK
LD Q
ST M_PU
END_BLK
--LD M_sen2 //если второй внутренний датчик достигаеся
ANDN M_goON //нет машины движится
S M_OUTf //начинается машина выходить
SR0 //выполняется процесса выезд а автомобиля в процедуре SR0
--LD M_CARD //если есть жетон
ANDN M_goON //нет машины движится
S M_INf //начинается машина входить
SR1 //Выполняется процесса въезда автомобиля в процедуре SR1
--LD M_INf //Если машина начинается входить
OR M_OUTf //или выходить
R M_doorClose //не закрывается дверь
R M_green1 //не зеленый свет
R M_green2
--BLK M_TIMERO //установка таймера открытия двери
LD (M_INf
OR M_OUTf
)
ANDN M_doorOpen
IN
OUT_BLK
LD Q
S M_doorOpen
END_BLK
--LD M_INf
OR M_OUTf
ANDN M_doorOpen
AND [M_PULSE.V<=10]
S M_red1 //мигают светофоры красные пока открывается дверь
S M_red2
--LD M_INf
OR M_OUTf
R M_doorOpen
R M_green1
R M_green2
R M_green3
R M_shlak
--BLK M_TIMERC //Установка таймера закрытия двери
LDN M_INf
ANDN M_OUTf
ANDN M_doorClose
IN
OUT_BLK
LD Q
S M_doorCLose
END_BLK
--LDN M_INf //Если нет машины начинается движиться
ANDN M_OUTf
ANDN M_doorClose //и дверь не закрыта
AND [M_PULSE.V<=10] // мигают светофоры красные пока закрывается дверь
S M_red1
S M_red2
--LD M_doorOpen //дверь уже открыта
AND (M_OUTf //машина начинается выходить
OR M_INf // или входить
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.