资源描述
OB82 FC2/ FC3/ FC4/FC5/FC300/DB2/UDT1/0B1 NETWORK1 都要拷贝到原程序中。
在DB2.DBW12中有一个FM350模块地址的设置。要与S7硬件配置中FM350的地址一样硬件配置中地址为I:272-287 Q:272-287。DB2.DBW12=W#16#110=272.
程序说明
OB1 network1
CALL "CiShan" //调用FC300程序块
cnt2_app :=W#16#2 //背景数据块号 DB2
quantity :=MW4 //预装载值,为MW4赋值,当前为零,也可以用W#16#0
load :=M0.2 //装载计数器值,计数器应用时此点为1
Gate0_3 :=M0.0 //打开计数器0-3通道的软件门
Gate4_5 :=M0.1 //打开计数器4-5通道的软件门
act_val :=M0.3 //开始读当前计数值的触发位
channel :=M0.4 //0为计数器通道0-3计数 1为为计数器通道4-7计数,应置1
rd_err :=M2.2 //读操作的出错提示
wr_err :=M2.1 //写操作的出错提示
load_done :=M2.0 //装载计数器操作的状态指示
state_oflw:=M2.3 //通道4测量值上限溢出状态指示
state_uflw:=M2.4 //通道4测量值下限溢出状态指示
FC300 程序说明
network1
L #cnt2_app //Application fill unit
T #cnt2_db //Open counter data block
OPN DB [#cnt2_db]
CALL "CNT2_CTR" //Control the FM 350-2 调用FC2
DB_NO:=#cnt2_db
A DBX 36.7 //FM 350-2 parameters assigned?
JCN END //No, process no application
A DBX 38.4 //Lower limit exceeded?
= #state_uflw
A DBX 39.4 //Upper limit exceeded?
= #state_oflw
A #Gate0_3 //Start the fill unit?
= DBX 23.0 //Yes, SW_GATE0 open
= DBX 23.1 //Yes, SW_GATE1 open
= DBX 23.2 //Yes, SW_GATE2 open
= DBX 23.3 //Yes, SW_GATE3 open
A #Gate0_3 //Start the fill unit?
A DBX 43.0 //Yes, CTRL_DQ0 = STAT_GATE0
= DBX 21.0 //and trigger fill valve
A #Gate0_3 //Start the fill unit?
AN DBX 42.0 //Yes, invert STAT_DQ0
= DBX 21.1 //and trigger motor for transport
= DBX 22.1 //with CTRL_DQ1 and SET_DQ1
A #Gate4_5 //Start the frequency measurement?
= DBX 23.4 //Yes, SW_GATE4 open
= DBX 23.5 //Yes, SW_GATE5 open
// = DBX 23.6 //Yes, SW_GATE6 open 想要使用通道6将前面注释符去掉
// = DBX 23.7 //Yes, SW_GATE7 open 想要使用通道7将前面注释符去掉
network2
SET //Set BR for error evaluation
SAVE
OPN DB [#cnt2_db] //Open counter data block
A DBX 1.0 //Load comparator in progress?
JC WRDO //Yes
A DBX 42.1 //New loading only during transport
JCN WREN
A #load //Load new quantity?
FP M 10.0 //Positive edge to #load 注意不能和程序其它地方应用冲突
JCN WREN //No
L #quantity //Quantity in counter data block
T DBD 116
L 42 //job_no 30 for
T DBB 0 //Load comparator count channel 0
WRDO: CALL "CNT2_WR" //Load counter and comparator for FM 350-2
DB_NO :=#cnt2_db
RET_VAL:=MW6 //注意不能和程序其它地方应用冲突
WREN: AN BR //Error: job_no unknown, retval_wr with error or data
error
= #wr_err
AN #load //Create write job ended
R DBX 1.1 //Deleted when loading triggered
A DBX 1.1
= #load_done
network 3
SET //Set BR for error evaluation
SAVE
OPN DB [#cnt2_db] //Open counter data block
A DBX 3.0 //Read actual values in progress?
JC RDDO //Yes
AN #act_val //Reading actual values?
JC RDEN //No
L 100 //job_no 100 for count channel 0 to 3
AN #channel //for count channel 4 to 7?
JC JOB
L 101 //job_no 101 for count channel 4 to 7
JOB: T DBB 2 //Load comparator count channel 0
RDDO: CALL "CNT2_RD" //Load counter and comparator for FM 350-2
DB_NO :=#cnt2_db
RET_VAL:=MW8 //注意不能和程序其它地方应用冲突
RDEN: AN BR //Error: job_no unknown or retval_rd with error
= #rd_err
END: BE
展开阅读全文