做一个OB82诊断中断的组织块仿真程序,硬件配置见图,仿真时的模块地址该如何写呢,我怎么写都是错的,OB82的程序如下:
L #OB82_IO_FLAG
L B#16#54
==I //Input?
JC go //Bit 15 remains unchanged if input present
L #OB82_MDL_ADDR
L W#16#8000
OW //Set bit 15
T #OB82_MDL_ADDR
//Determine whether incoming or outgoing event present
go: L #OB82_MDL_ADDR
T MW 30
L #OB82_EV_CLASS //Event class and IDs
L B#16#39
==I //Incoming event?
JC come
//Read out and save diagnostic information
L #OB82_MDL_ADDR
T MW 30
//Outgoing event
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#B3
INDEX :=MW30
RET_VAL :=MW102
BUSY :=M101.7
SZL_HEADER:=#SZL_HEADER
DR :=DB13.GO
BEU
//Incoming event
come: CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#B3
INDEX :=MW30
RET_VAL :=MW102
BUSY :=M101.7
SZL_HEADER:=#SZL_HEADER
DR :=DB13.COME
BEU
问题补充:
仿真后,cpu的模块信息也提示模块故障,但是DB13在线却看不到任何变化,没有实际值啊
图片说明:
最佳答案
OB82诊断中断举例_百度文库
http://wenku.baidu.com/view/5b6edbd076a20029bd642df4.html
看这个。
提问者对于答案的评价:
你提供的文档,仿真可以,但是我这个不行,我还没找到原因,谢谢你吧。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234194.html