Попробовал спросить на iadt.siemens.ru , но так и не получил ответа. Попробую спросить здесь
Проблема в следующем: создал OB86 c текстом
Код:
SET
S M140.1
При выключении и включении оборудования, подключенного через DP-DP, меркер взводится, но если выключить оборудование, когда контроллер в стопе и перевести в run, то меркер остается не взведенным.
Для чего мне это нужно:
Хотелось бы отключать незадействованное в техпроцессе оборудование, однако сейчас при отключении срабатывает авария из-за обесточенной аварийной кнопки.
Возможно кто-нибудь подскажет другое решение, как детектить отключенное оборудование? Может у кого есть пример использования для подобных случаев sfc51 или fb125/126?
[?]: Определение в программе отключенного оборудования
-
- Posts: 11
- Joined: Tue Sep 28, 2010 7:39 am
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Определение в программе отключенного оборудования
OB122?
Code: Select all
OB122_MEM_AREA BYTE Memory area and access type:
· Bits 7 to 4: Access type
- 0: Bit access
- 1: Byte access
- 2: Word access
- 3: DWord access
· Bits 3 to 0: memory area
- 0: I/O area
- 1: Process image of the inputs
- 2: Process image of the outputs
OB122_MEM_ADDR WORD Memory address where the error occurred
-
- Posts: 11
- Joined: Tue Sep 28, 2010 7:39 am
Re: Определение в программе отключенного оборудования
Я уже думал об ов122, но как из него вытянуть адрес отключенного оборудования? А если отключено 2 и более модуля? Их бы опрашивать по очереди
-
- Posts: 41
- Joined: Tue Aug 09, 2011 12:27 pm
Re: Определение в программе отключенного оборудования
Я в начале после запуска программы вызываю SFC51 szl_id = W#16#292AndreyUA wrote:Попробовал спросить на iadt.siemens.ru , но так и не получил ответа. Попробую спросить здесь
Проблема в следующем: создал OB86 c текстом
Код:
SET
S M140.1
При выключении и включении оборудования, подключенного через DP-DP, меркер взводится, но если выключить оборудование, когда контроллер в стопе и перевести в run, то меркер остается не взведенным.
Для чего мне это нужно:
Хотелось бы отключать незадействованное в техпроцессе оборудование, однако сейчас при отключении срабатывает авария из-за обесточенной аварийной кнопки.
Возможно кто-нибудь подскажет другое решение, как детектить отключенное оборудование? Может у кого есть пример использования для подобных случаев sfc51 или fb125/126?
-
- Posts: 11
- Joined: Tue Sep 28, 2010 7:39 am
Re: Определение в программе отключенного оборудования
А пример кода можно посмотреть?
-
- Posts: 41
- Joined: Tue Aug 09, 2011 12:27 pm
Re: Определение в программе отключенного оборудования
http://s017.radikal.ru/i400/1112/29/0da2a378769a.jpgAndreyUA wrote:А пример кода можно посмотреть?
sample code
Show
Code: Select all
A #RDY_OUT
JNB M_1
SET // ñáðîñèòü âûõîäà
R #MOD04_REMOVE
R #MOD05_REMOVE
R #MOD06_REMOVE
R #MOD07_REMOVE
R #MOD08_REMOVE
R #MOD09_REMOVE
R #MOD10_REMOVE
R #MOD11_REMOVE
R #MOD12_REMOVE
R #MOD13_REMOVE
L #SZL_HEADER.N_DR
T #CNT
L #CNT
L W#16#3
>=I
JNB M_1
L #DIAG_BUF[35] // слот 4
AW W#16#FF
L W#16#4
==I
JNB M_1
L #DIAG_BUF[46] // статус модуля
AW W#16#4 // модуль недоступен!!!
L W#16#4
==I
= #MOD04_REMOVE
L #CNT
L W#16#4
>=I
JNB M_1
L #DIAG_BUF[51] // слот 5
AW W#16#FF
L W#16#5
==I
JNB M_1
L #DIAG_BUF[62] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD05_REMOVE
L #CNT
L W#16#5
>=I
JNB M_1
L #DIAG_BUF[67] // ñëîò 6
AW W#16#FF
L W#16#6
==I
JNB M_1
L #DIAG_BUF[78] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD06_REMOVE
L #CNT
L W#16#6
>=I
JNB M_1
L #DIAG_BUF[83] // ñëîò 7
AW W#16#FF
L W#16#7
==I
JNB M_1
L #DIAG_BUF[94] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD07_REMOVE
L #CNT
L W#16#7
>=I
JNB M_1
L #DIAG_BUF[99] // ñëîò 8
AW W#16#FF
L W#16#8
==I
JNB M_1
L #DIAG_BUF[110] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD08_REMOVE
L #CNT
L W#16#8
>=I
JNB M_1
L #DIAG_BUF[115] // ñëîò 9
AW W#16#FF
L W#16#9
==I
JNB M_1
L #DIAG_BUF[126] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD09_REMOVE
L #CNT
L W#16#9
>=I
JNB M_1
L #DIAG_BUF[131] // ñëîò 10
AW W#16#FF
L W#16#A
==I
JNB M_1
L #DIAG_BUF[142] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD10_REMOVE
L #CNT
L W#16#A
>=I
JNB M_1
L #DIAG_BUF[147] // ñëîò 11
AW W#16#FF
L W#16#B
==I
JNB M_1
L #DIAG_BUF[158] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD11_REMOVE
L #CNT
L W#16#B
>=I
JNB M_1
L #DIAG_BUF[163] // ñëîò 12
AW W#16#FF
L W#16#C
==I
JNB M_1
L #DIAG_BUF[174] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD12_REMOVE
L #CNT
L W#16#C
>=I
JNB M_1
L #DIAG_BUF[179] // ñëîò 13
AW W#16#FF
L W#16#D
==I
JNB M_1
L #DIAG_BUF[190] // ñòàòóñ ìîäóëÿ
AW W#16#4 // ìîäóëü íå äîñòóïåí
L W#16#4
==I
= #MOD13_REMOVE
M_1: NOP 0
SET