发布于 2011-05-17 19:55:29
4楼
OB86里面当然可以不写程序,主要看你想让OB86做什么活。楼主建议你先理解中断的含义,然后看一下OB86的help,再结合它的声明表部分,试着去理解,你理解了,也就知道自己可以用它来做什么了,你的付出会有收获的。以前我处理过这样类似的问题,是做到WinCC上监控和显示的,你要在PLC的Q点输出,稍加修改就可以了。下面提供一些代码给你参考,希望对你有所帮助!
L #OB86_EV_CLASS //Event class and identifiers:B#16#38=outgoing event;B#16#39=incoming event
T DB400.DBB 8
L #OB86_FLT_ID //Error code:(possible values B#16#C1, B#16#C2, B#16#C3, B#16#C4, B#16#C5, B#16#C6, B#16#C7, B#16#C8)
T DB400.DBB 9
L #OB86_MDL_ADDR //Logical base address of the DP master
T DB400.DBW 10
L LW 8 //logical base address of an S7 slave or diagnostic address of a standard DP slave
T DB400.DBW 12
L LB 10
T DB400.DBB 14 //DP master system ID
L LB 11 //No. of the DP SLAVE ID
T DB400.DBB 15
L #OB86_EV_CLASS //WHEN THE EVENT OUTGOING ,GOTO M001
L B#16#38
==I
JC M001
L LB 11
L 4
==I
S DB400.DBX 16.4 //SET DP SLAVE4 FAULT MEMORY
L LB 11
L 5
==I
S DB400.DBX 16.5 //SET DP SLAVE5 FAULT MEMORY
L LB 11
L 6
==I
S DB400.DBX 16.6 //SET DP SLAVE6 FAULT MEMORY
BEU
M001: L LB 11
L 4
==I
R DB400.DBX 16.4 //RESET DP SLAVE4 FAULT MEMORY
L LB 11
L 5
==I
R DB400.DBX 16.5 //RESET DP SLAVE5 FAULT MEMORY
L LB 11
L 6
==I
R DB400.DBX 16.6 //RESET DP SLAVE6 FAULT MEMORY
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”