Обмен и обработка информации по коммуникационным сетям в распределенных системах управления ASCII и Modbus, страница 5

)

S          M_goOn          //то есть машина движится внутри

--LD        M_doorClose

R          M_green1

R          M_green2

S          M_red1

S          M_red2

R          M_shlak

--LD        1         

SR2                  //процедура передачи выходные сигнал в Slave

Часть 3, отвечающая за выезд автомобиля.

SR0:

LD        1

R          M_green1

R          M_shlak

--LD        [M_PULSE.V<=10]

S          M_red1

LD        [M_PULSE.V<=10]

ANDN  M_sen2

S          M_red2

R          M_green2

LD        [M_PULSE.V<=10]

AND     M_sen2

R          M_red2

S          M_green2

--LD        [M_PULSE.V>10]

R          M_red1

R          M_red2

LD        [M_PULSE.V>10]

ANDN  M_sen2

R          M_green2

LD        [M_PULSE.V>10]

AND     M_sen2

S          M_green2

--LD        M_OUTf

AND     M_sen0

ST        M_OUT

R          M_OUTf

R          M_goOn

RET

--Часть 4, отвечающая за въезд автомобиля.

SR1:

LD 1

R          M_green2

LD        [M_PULSE.V<=10]

ST        M_red2

LD        M_sen0

S          M_INPR

LD        M_sen1

R          M_INPR

--LD        M_INPR

R          M_green1

R          M_shlak

LD        M_INPR

AND     [M_PULSE.V<=10]

S          M_red1

--LD        M_INPR

AND     [M_PULSE.V>10]

R          M_red1

LDN     M_INPR

S          M_green1

R          M_red1

LD        M_sen1

--ST        M_IN

R          M_INf

R          M_goON

RET

--5. Часть5 Передача выходные сигналы в Slave

SR2:

LD        M_shlak

[%MW36:=16#0001]

LD        M_green1

[%MW37:=16#0001]

LD        M_red1

[%MW38:=16#0001]

LD        M_green2

[%MW39:=16#0001]

LD        M_red2

[%MW40:=16#0001]

LD        M_full

[%MW41:=16#0001]

LD        1

[%MW42:=%MW0]

--LD        1

[%MW30:=16#0116]   //01-код приема/передачи; 16 – 22 байтов запроса (от MW%32 до %MW42)

[%MW31:=16#0000]   //00 –нет полученных данных

[%MW32:=16#0110]   //01 –адресс Slave; 10 –код функции 16 (записать многие слов)

[%MW33:=16#0020]   //адресс начального слова в Slave,куда записать, %MW32

[%MW34:=16#0007]   //количество слов 7

[%MW35:=16#000E]   //количество байтов 14

--LD        %MSG3.D

[EXCH3 %MW30:25]

--LD        1

[%MW36:=0]

[%MW37:=0]

[%MW38:=0]

[%MW39:=0]

[%MW40:=0]

[%MW41:=0]

RET

Код программыв Slave (обновлениевыходных сигналов)

LD        [%MW32=16#0001]

ST        S_shlak

LD        [%MW33=16#0001]

ST        S_green1

LD        [%MW34=16#0001]

ST        S_red1

LD        [%MW35:=16#0001]

ST        S_green2

LD        [%MW36=16#0001]

ST        M_red2

LD        [%MW37=16#0001]

ST        S_full

LD        1

[S_amount:=%MW38]

Выводы

В отчете описано как выполняется обмен и обработка информации по коммуникационным сетям в распределенных системах управления ASCII и Modbus. Читатель модет найти удобнее информации об инструкции EXCH чем в Справочное руководство по программному обеспечению, особенно с конкретными контроллерами TWDLCEA40DRF.

В ходе задачи «Автостоянка» мы познакомились языком IL, поработали с операторской панелью. Также в ходе работы я выяснил, что если входной переменной присвоен адрес, то управлять такой переменной можно только с контроллера, но не с операторской панели. Поэтому на начальных стадиях отладки рекомендую не назначать адреса, чтобы можно было быстро управлять программой с операторской панели. Назначить адреса можно в самом конце, перед загрузкой программы в контроллер.