1、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 q
2、uantity :=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
3、 :=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
4、 //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 appli
5、cation 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, S
6、W_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
7、 //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 tran
8、sport = 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
9、 //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 bl
10、ock 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
11、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
12、 //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
13、 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 eva
14、luation 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
15、 //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
16、 //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






