IF[[#1021.item[0]==2]*[#826!=1]]+[#945.item[0]==1]THEN#826=1
IF[#1021.item[0]!=2]*[#826==1]*[#945.item[0]==0]THEN#826=0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;轴映射多面雕
IF#929.item[7]==0GOTO241
IF#949.item[0]!=0THEN#949.item[0]=#949.item[0]+1;摆臂调节延时触发计数器累加
IF#949.item[0]<10GOTO240
;摆臂调节延时触发
#949.item[0]=0
widgetFunc["SysFunc","","ncParser","axismappingcurve/调整摆轴.nc"]
N240

IF#949.item[1]==0GOTO241;面切换触发判别
#949.item[1]=0

IF#949.item[2]==#949.item[3]GOTO241

#949.item[2]=#949.item[3]

IF#949.item[2]==0GOTO242
IF#949.item[2]==1GOTO243
IF#949.item[2]==2GOTO244
GOTO241

N242;顶面定位
#1010.item[59]=#300.item[0]
#1011.item[59]=#300.item[1]
#1012.item[59]=#300.item[2]

#1010.item[2]=#949.item[10]
#1011.item[2]=#949.item[11]
#1012.item[2]=#949.item[12]

#1010.item[3]=#949.item[16]
#1011.item[3]=#949.item[17]
#1012.item[3]=#949.item[18]

#1010.item[49]=#949.item[22];1(X)号物理轴轴运动方向 0为低电平 1为高电平
#1011.item[49]=#949.item[23];2(Y)号物理轴轴运动方向 0为低电平 1为高电平
#1012.item[49]=#949.item[24];3(Z)号物理轴轴运动方向 0为低电平 1为高电平

#1010.item[0]=#949.item[4];X编程轴使用X轴脉冲当量
#1011.item[0]=#949.item[5];Y编程轴使用Y轴脉冲当量
#1012.item[0]=#949.item[6];Z编程轴使用Z轴脉冲当量


#1010.item[28]=0;X编程轴映射到1(X)号物理轴
#1011.item[28]=1;Y编程轴映射到2(Y)号物理轴
#1012.item[28]=2;Z编程轴映射到3(Z)号物理轴


#949.item[0]=1;摆臂调节延时触发计数器
GOTO241

N243;左面定位
#1010.item[59]=#300.item[0]
#1011.item[59]=#300.item[1]
#1012.item[59]=#300.item[2]

#1010.item[2]=#949.item[30]
#1011.item[2]=#949.item[31]
#1012.item[2]=#949.item[32]

#1010.item[3]=#949.item[36]
#1011.item[3]=#949.item[37]
#1012.item[3]=#949.item[38]

#1010.item[49]=#949.item[42];1(X)号物理轴轴运动方向 0为低电平 1为高电平
#1011.item[49]=#949.item[43];2(Y)号物理轴轴运动方向 0为低电平 1为高电平
#1012.item[49]=#949.item[44];3(Z)号物理轴轴运动方向 0为低电平 1为高电平

#1010.item[0]=#949.item[6];X编程轴使用Z轴脉冲当量
#1011.item[0]=#949.item[5];Y编程轴使用Y轴脉冲当量
#1012.item[0]=#949.item[4];Z编程轴使用X轴脉冲当量


#1010.item[28]=2;Z编程轴映射到1(X)号物理轴
#1011.item[28]=1;Y编程轴映射到2(Y)号物理轴
#1012.item[28]=0;X编程轴映射到3(Z)号物理轴

#949.item[0]=1;摆臂调节延时触发计数器
GOTO241

N244;右面定位
#1010.item[59]=#300.item[0]
#1011.item[59]=#300.item[1]
#1012.item[59]=#300.item[2]

#1010.item[2]=#949.item[50]
#1011.item[2]=#949.item[51]
#1012.item[2]=#949.item[52]

#1010.item[3]=#949.item[56]
#1011.item[3]=#949.item[57]
#1012.item[3]=#949.item[58]

#1010.item[49]=#949.item[62];1(X)号物理轴轴运动方向 0为低电平 1为高电平
#1011.item[49]=#949.item[63];2(Y)号物理轴轴运动方向 0为低电平 1为高电平
#1012.item[49]=#949.item[64];3(Z)号物理轴轴运动方向 0为低电平 1为高电平

#1010.item[0]=#949.item[6];X编程轴使用Z轴脉冲当量
#1011.item[0]=#949.item[5];Y编程轴使用Y轴脉冲当量
#1012.item[0]=#949.item[4];Z编程轴使用X轴脉冲当量

#1010.item[28]=2;Z编程轴映射到1(X)号物理轴
#1011.item[28]=1;Y编程轴映射到2(Y)号物理轴
#1012.item[28]=0;X编程轴映射到3(Z)号物理轴

#949.item[0]=1;摆臂调节延时触发计数器

N241
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;3D探针信号使能状态
IF#902.item[42]==0GOTO25
IF#1031.itemversion[#902.item[42]-1]==0GOTO26
#902.itemmin[42]=1
GOTO25
N26
#902.itemmin[42]=0
N25

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;复位/暂停延时请求处理
IF#319.item[3]==0GOTO5
IF#946.item[3]==0GOTO3
IF#946.item[6]==0GOTO4
IF#9990.channel-#946.item[7]<#946.item[4]GOTO6
IF#946.item[3]==1THEN#319.item[1]=1
IF#946.item[3]==2THEN#319.item[2]=1
#946.item[3]=0
#946.item[6]=0
#9997=#946.item[5]
GOTO6
N4
#946.item[7]=#9990.channel
N3
#946.item[6]=#946.item[3]
GOTO6
N5
#946.item[3]=0
#946.item[6]=0
#946.item[8]=0
#9997.unit="";清加工中提示信息
N6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

IF[#319.item[6]==0]*[#319.itemversion[6]==1]GOTO900
GOTO901
N900

widgetFunc["SysFunc","","ncParser","reset.nc"]

(主卡输出IO故障策略)
#1032=0
WHILE#1032<#1023.maxDO11
IF#1023.itemversion[#1032]==0GOTO902
IF#1032.itemversion[#1032]==0GOTO902
#1023.item[#1032]=#1032.itemversion[#1032]-1
N902
#1032=#1032+1
END11

(MODBUS输出IO故障策略)
IF#1035.item[0]==0GOTO901
#1034=0
WHILE#1034<#1035.item[7]DO12
IF#1030.itemversion[#1034]==0GOTO903
IF#1034.itemversion[#1034]==0GOTO903
#1030.item[#1034]=#1034.itemversion[#1034]-1
N903
#1034=#1034+1
END12

N901

#319.itemversion[6]=#319.item[6]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(系统故障处理)
IF#319.item[6]==0GOTO110
#319.itemversion[3]=0
#319.item[7]=0

IF#319.itemversion[1]!=0GOTO402
(主卡输出IO故障策略)
#1032=0
WHILE#1032<#1023.maxDO6
IF#1023.itemversion[#1032]==1GOTO401
IF#1032.itemversion[#1032]==0GOTO401
#1023.item[#1032]=#1032.itemversion[#1032]-1
N401
#1032=#1032+1
END6
N402

(MODBUS输出IO故障策略)
IF#1035.item[0]==0GOTO406
#1034=0
WHILE#1034<#1035.item[7]DO8
IF#1030.itemversion[#1034]==1GOTO405
IF#1034.itemversion[#1034]==0GOTO405
#1030.item[#1034]=#1034.itemversion[#1034]-1
N405
#1034=#1034+1
END8
N406

(工艺输出IO故障策略)
#948=0
WHILE#948<#948.itemnumDO5
IF#948.item[#948]==0GOTO114
IF#903.item[#948]==0GOTO114
IF[#903.itemunit[#948]!=""]*[#912.itemmax[#903.itemunit[#948]]==0]GOTO114
IF[#948<2]*[#903.itemdesc[#948]!=""]*[#338.item[0]==2]GOTO114
IF[#948>=2]*[#948<=5]*[#903.itemdesc[#948]!=""]*[#338.item[0]!=1]GOTO114
IF[#948>5]*[#903.itemdesc[#948]!=""]*[1-[#903.itemdesc[#948]>#901.itemdesc[0]]]GOTO114
IF#903.itemversion[#948]==0GOTO115
#1030.item[#903.item[#948]-1]=#948.item[#948]-1
GOTO114
N115
#1023.item[#903.item[#948]-1]=#948.item[#948]-1
N114
#948=#948+1
END5

(故障时主轴关闭策略)
IF#356.item[4]==1GOTO111
IF#319.item[11]==1GOTO111
IF#324.item[13]==5GOTO111
IF#338.item[0]==2GOTO112
IF#338.item[0]==0GOTO113
IF#338.itemdesc[11]==0THEN#1023.item[#338.item[11]-1]=1-#338.item[12]
IF#338.itemdesc[11]==1THEN#1030.item[#338.item[11]-1]=1-#338.item[12]
IF#338.itemdesc[13]==0THEN#1023.item[#338.item[13]-1]=1-#338.item[14]
IF#338.itemdesc[13]==1THEN#1030.item[#338.item[13]-1]=1-#338.item[14]
#324.item[13]=5
#338.item[21]=0
GOTO111
N112
#324.item[13]=5
#338.item[21]=0
GOTO111
N113
#20=1023*[#903.itemversion[0]==0]+1030*[#903.itemversion[0]==1];主轴正转信号源 板载/Modbus
IF[#903.itemmin[0]==1]*[#903.item[0]>0]THEN#[#20].item[#903.item[0]-1]=1-#903.itemmax[0] ;主轴正转关闭
#20=1023*[#903.itemversion[1]==0]+1030*[#903.itemversion[1]==1];主轴反转信号源 板载/Modbus
IF[#903.itemmin[1]==1]*[#903.item[1]>0]THEN#[#20].item[#903.item[1]-1]=1-#903.itemmax[1] ;主轴反转关闭
#20=1023*[#903.itemversion[23]==0]+1030*[#903.itemversion[23]==1];主轴1信号源 板载/Modbus
IF[#903.itemmin[23]==1]*[#903.item[23]>0]THEN#[#20].item[#903.item[23]-1]=1-#903.itemmax[23] ;主轴1关闭
#20=1023*[#903.itemversion[24]==0]+1030*[#903.itemversion[24]==1];主轴2信号源 板载/Modbus
IF[#903.itemmin[24]==1]*[#903.item[24]>0]THEN#[#20].item[#903.item[24]-1]=1-#903.itemmax[24] ;主轴2关闭
#20=1023*[#903.itemversion[25]==0]+1030*[#903.itemversion[25]==1];主轴3信号源 板载/Modbus
IF[#903.itemmin[25]==1]*[#903.item[25]>0]THEN#[#20].item[#903.item[25]-1]=1-#903.itemmax[25] ;主轴3关闭
#20=1023*[#903.itemversion[26]==0]+1030*[#903.itemversion[26]==1];主轴4信号源 板载/Modbus
IF[#903.itemmin[26]==1]*[#903.item[26]>0]THEN#[#20].item[#903.item[26]-1]=1-#903.itemmax[26] ;主轴4关闭
#324.item[13]=5
#338.item[21]=0
N111

(故障时冷却泵关闭策略)
IF#356.item[5]==1GOTO110
IF#319.item[11]==1GOTO110
IF#339.itemdesc[2]==0THEN#1023.item[#339.item[2]-1]=1-#339.item[3]
IF#339.itemdesc[2]==1THEN#1030.item[#339.item[2]-1]=1-#339.item[3]
N110
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(加工中调偏策略:加工中部分)
IF[#358.item[0]!=4]+[#319.itemversion[3]==0]+[#319.item[10]==1]GOTO34
#330.item[49]=#358.item[3];恢复暂停回退距离
#330.item[30]=#358.item[4];恢复加工起点位置设置
#356.item[1]=#358.item[5];恢复暂停时关闭主轴设置
#356.item[3]=#358.item[7];恢复暂停时关闭冷却设置
#358.item[0]=0
N34
;IF#358.item[0]==1THEN#358.item[0]=0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

IF#319.item[3]==1GOTO1
(空闲中轮询)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;仿真结束后退出仿真模式
IF[#324.item[12]==1]*[#319.item[11]==1]THEN#319.item[11]=0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#9980.itemversion[7]=0;取消延时暂停

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;停止(软复位)策略:自动取消
IF#319.itemversion[1]==0GOTO10
IF[#341.item[6]==2]*[#319.item[6]==1]*[#1008.item[7]<50]*[#319.itemmin[1]==0]THEN#319.itemmin[1]=1
IF#319.itemmin[1]==0GOTO10
#319.item[1]=0
#319.item[6]=0
IF#341.item[6]!=0GOTO10
#319.itemversion[1]=0
#319.itemmin[1]=0
N10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;记录断点
IF#319.itemmin[2]==0GOTO14
IF#319.itemmin[2]==1GOTO15
IF#319.itemmin[2]==2GOTO16
GOTO14
N15
#319.itemmin[2]=0
widgetFunc["SysFunc","/pause-bkp","saveAsBreakPointTo",""]
#930.channel=#332.item[50]
#930.value=#403
#904=FIX[[#904.itemnum-1]/10]
#904.item[#904.itemnum-1]=#324
#904.itemdesc[#904.itemnum-1]=#1107.itemtitle[12]+#403
#904.itemversion[#904.itemnum-1]=0
#904.itemnum=#904.itemnum+1
(清G52坐标偏置)
#309.item[0]=0.0
#309.item[1]=0.0
#309.item[2]=0.0
#309.item[3]=0.0
#309.item[4]=0.0
#309.item[5]=0.0
GOTO14
N16
#319.itemmin[2]=0
#319.item[7]=1
widgetFunc["SysFunc","/stop-bkp","saveAsBreakPointTo",""]
#930.channel=#332.item[50]
#930.value=#403
#319.item[7]=0
#904=FIX[[#904.itemnum-1]/10]
#904.item[#904.itemnum-1]=#324
#904.itemdesc[#904.itemnum-1]=#1107.itemtitle[13]+#403
#904.itemversion[#904.itemnum-1]=0
#904.itemnum=#904.itemnum+1
(清G52坐标偏置)
#309.item[0]=0.0
#309.item[1]=0.0
#309.item[2]=0.0
#309.item[3]=0.0
#309.item[4]=0.0
#309.item[5]=0.0
N14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(主轴启停策略)
IF#324.itemversion[13]==0GOTO30
IF#1021.item[0]==3GOTO30
#319.item[1]=0
#319.item[6]=0
#324.itemversion[13]=0
widgetFunc["SysFunc","","ncParser","device/m5.nc"]
N30
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(离合开关策略)
IF#946.item[0]==0GOTO37
IF#319.item[0]==1GOTO37
IF[#341.item[6]==2]*[#319.item[6]==1]*[#946.item[2]==0]THEN#946.item[2]=1
IF#946.item[2]==0GOTO37
#319.item[1]=0
#319.item[6]=0
IF[#341.item[6]!=0]+[#319.item[0]!=0]+[#319.item[1]!=0]+[#319.item[6]!=0]GOTO37
#946.item[0]=0
widgetFunc["SysFunc","1","parser","/env/funcscripts/clutch"]
N37
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(加工中调偏策略:空闲部分)
IF#358.item[0]==0GOTO31
IF[#358.item[0]==1]*[#1021.item[#358.item[1]+13]==0]*[#1021.item[12]==0]GOTO32
IF[#358.item[0]==3]*[#1021.item[#358.item[1]+13]==0]*[#1021.item[12]==0]GOTO33
GOTO31
N32
#358.item[0]=2
#101=#358.item[1];调偏轴
#102=#358.item[2];调偏坐标系
IF#358.item[6]==1GOTO35
widgetFunc["SysFunc","1","parser","/env/coordinate/offsetdown"]
GOTO36
N35
widgetFunc["SysFunc","1","parser","/env/coordinate/offsetup"]
N36
#358.item[0]=3
GOTO31
N33
#358.item[0]=4
(#319.item[7]=0;撤销暂停状态
#319.item[9]=1;恢复加工
#319.item[10]=0;非MDI
#319.item[3]=1;解释器启动)
widgetFunc["SysFunc","1","parser","/env/resume"]
N31
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;寻零异常结束软限位恢复
IF#322.version==0GOTO11
#322.version=0
IF#322.item[18]==1GOTO12
#1010.item[22]=#322.item[19]
#1011.item[22]=#322.item[20]
#1012.item[22]=#322.item[21]
#1013.item[22]=#322.item[22]
#1014.item[22]=#322.item[23]
#1015.item[22]=#322.item[24]
GOTO11
N12
#1010.item[22]=0
#1011.item[22]=0
#1012.item[22]=0
#1013.item[22]=0
#1014.item[22]=0
#1015.item[22]=0
IF#314.item[0]==1THEN#1010.item[22]=#322.item[19]
IF#314.item[1]==1THEN#1011.item[22]=#322.item[20]
IF#314.item[2]==1THEN#1012.item[22]=#322.item[21]
IF#314.item[3]==1THEN#1013.item[22]=#322.item[22]
IF#314.item[4]==1THEN#1014.item[22]=#322.item[23]
IF#314.item[5]==1THEN#1015.item[22]=#322.item[24]
N11
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;联机寻零
IF#330.itemversion[60]==0GOTO13
#330.itemversion[60]=0
widgetFunc["SysFunc","","ncParser","mach/home.nc"]
N13
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;刀轨显示自适应
IF#319.itemversion[11]==0GOTO2
#319.itemversion[11]=0
#319.item[11]=0

#20=#336.item[6]-#336.item[0]
#21=#336.item[7]-#336.item[1]
IF#21>#20THEN#20=#21

#331.item[23]=0
#331.item[24]=0
#331.item[25]=-#20/[ABS[#322.item[14]-#322.item[8]]]
#331.item[26]=[#336.item[6]-#336.item[0]]/2.0+#336.item[0]+#[302+#324.item[4]-1].item[0]+#308.item[0]+#308.item[6]+#330.item[40]
#331.item[27]=[#336.item[7]-#336.item[1]]/2.0+#336.item[1]+#[302+#324.item[4]-1].item[1]+#308.item[1]+#308.item[7]+#330.item[41]
#331.item[28]=0
#331.item[31]=2
N2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;代码生成完成后,加载相应的刀路文件,并生成其逆向刀路
IF#812.permission==0GOTO1
#812.permission=0
#334.itemnum=0
#334.item[1]=#319.item[19]
#9047=#319.item[19]
#9048.channel=0
#9048.permission=widgetFunc["getFileLineNum","","",#319.item[19]]
#403=#319.item[19]
#5999.itemnum=0
#[6001+#9047.permission].itemnum=0
#810.permission=0
#810=0
IF#929.item[4]==0GOTO1
;开启逆向加工
#319.item[19]="planning.nc"
#319.item[17]=1;生成路径代码
#319.item[18]=1;逆向路径代码
#319.item[20]=0;关闭逆向加工
IF#324.item[12]==1THEN#319.item[11]=1;仿真
#319.item[10]=0;MDI
#319.item[9]=0;取消恢复加工
#319.item[3]=1;解释器启动
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

N1

IF#319.itemversion[3]==0GOTO200;非加工状态下退出
IF#319.item[6]==1GOTO200;仿真状态下退出

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(延时暂停)
IF#9980.itemversion[7]==0GOTO355;延时暂停未开启
IF#946.item[13]==0GOTO351;延时暂停启动触发
GOTO352
N351
#946.item[12]=#9990.channel;刷新定时暂停计时器
#946.item[14]=#9980.item[7]
#946.item[11]=1
#946.item[15]=#9990.channel+#946.item[14]*60000
GOTO356
N352
IF#946.item[11]==1GOTO350;延时暂停已开启
GOTO356
N350
#946.item[16]=INT[[#946.item[15]-#9990.channel]/1000]
#946.item[17]=widgetFunc["formatDateTime","","",#946.item[16]]
IF#9990.channel<#946.item[12]+#946.item[14]*60000 GOTO356;延时时间未到
#9980.itemversion[7]=0
#319.item[2]=1;暂停请求
GOTO356
N355
#946.item[11]=0
N356
#946.item[13]=#9980.itemversion[7]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

N200

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;主卡报警输入信号处理
#1031.channel=0
WHILE#1031.channel<#1022.maxDO7
IF#1031.itemversion[#1031.channel]==0GOTO404
IF#1022.item[#1031.channel]!=#1031.item[#1031.channel]GOTO403
IF#9990.channel<#1022.itemmin[#1031.channel]GOTO404
IF[#9997==" "]*[#1031.itemversion[#1031.channel]!=4]THEN#9997=#1031.itemtitle[#1031.channel]
IF[#1031.itemversion[#1031.channel]==3]*[[#319.item[11]==1]]GOTO404;暂停告警策略时，处于仿真方式下时，忽略
IF#1031.itemversion[#1031.channel]==2THEN#319.item[1]=1;复位
IF[#1031.itemversion[#1031.channel]==3]*[#319.item[3]==1]*[#319==0]THEN#319.item[2]=1;暂停
IF[#1031.itemversion[#1031.channel]==3]*[#319.item[3]==1]*[#319==0]THEN#319=1;暂停
IF[#1031.itemversion[#1031.channel]!=4]+[#1022.itemmax[#1031.channel]==1]GOTO404
#1031.unit="input/in"+INT[#1031.channel+1]+".nc"
widgetFunc["SysFunc","","ncParser",#1031.unit]
#1022.itemmax[#1031.channel]=1
GOTO404
N403
#1022.itemmin[#1031.channel]=#9990.channel+#1031.itemmin[#1031.channel]
#1022.itemmax[#1031.channel]=0
IF#1031.itemversion[#1031.channel]==3THEN#319=0
IF#9997==#1031.itemtitle[#1031.channel]THEN#9997=" "
N404
#1031.channel=#1031.channel+1
END7
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MODBUS IO卡报警输入信号处理
IF#1035.item[0]==0GOTO409
#1033.channel=0
WHILE#1033.channel<#1035.item[3]DO9
IF#1033.itemversion[#1033.channel]==0GOTO407
IF#1029.item[#1033.channel]!=#1033.item[#1033.channel]GOTO408
IF#9990.channel<#1029.itemmin[#1033.channel]GOTO407
IF[#9997==" "]*[#1033.itemversion[#1033.channel]!=4]THEN#9997=#1033.itemtitle[#1033.channel]
IF[#1033.itemversion[#1033.channel]==3]*[[#319.item[11]==1]]GOTO407;暂停告警策略时，处于仿真方式下时，忽略
IF#1033.itemversion[#1033.channel]==2THEN#319.item[1]=1;复位
IF[#1033.itemversion[#1033.channel]==3]*[#319.item[3]==1]*[#319==0]THEN#319.item[2]=1;暂停
IF[#1033.itemversion[#1033.channel]==3]*[#319.item[3]==1]*[#319==0]THEN#319=1;暂停
IF[#1033.itemversion[#1033.channel]!=4]+[#1029.itemmax[#1033.channel]==1]GOTO407
#1033.unit="input/modbusin"+INT[#1033.channel+1]+".nc"
widgetFunc["SysFunc","","ncParser",#1033.unit]
#1029.itemmax[#1033.channel]=1
GOTO407
N408
#1029.itemmin[#1033.channel]=#9990.channel+#1033.itemmin[#1033.channel]
#1029.itemmax[#1033.channel]=0
IF#1033.itemversion[#1033.channel]==3THEN#319=0
IF#9997==#1033.itemtitle[#1033.channel]THEN#9997=" "
N407
#1033.channel=#1033.channel+1
END9
N409
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;工艺报警输入信号处理
#20=26
WHILE#20<34DO3
IF[#902.itemmin[#20]==0]+[#902.item[#20]==0]GOTO80
#21=1022
IF#902.itemversion[#20]==1THEN#21=1029
IF[#[#21].item[#902.item[#20]-1]==#902.itemmax[#20]]*[#9997==" "]GOTO81
IF[#[#21].item[#902.item[#20]-1]!=#902.itemmax[#20]]*[#9997==#902.itemtitle[#20]]GOTO82
GOTO80
N81
#9997=#902.itemtitle[#20]
GOTO80
N82
#9997=" "
N80
#20=#20+1
END3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;伺服报警输入信号处理
#20=0
WHILE#20<6DO4
IF#902.itemversion[#20]==0GOTO85
IF#912.itemmax[#20]==0GOTO85
IF[#902.itemmin[#20]==0]+[#902.item[#20]==0]GOTO85
IF#1029.item[#902.item[#20]-1]!=#902.itemmax[#20]GOTO88
#314.item[#20]=0
#319.item[1]=1;复位
#322.version=1;触发软限位调整机制
N88
IF[#1029.item[#902.item[#20]-1]==#902.itemmax[#20]]*[#9997==" "]GOTO86
IF[#1029.item[#902.item[#20]-1]!=#902.itemmax[#20]]*[#9997==#902.itemtitle[#20]]GOTO87
GOTO85
N86
#9997=#902.itemtitle[#20]
GOTO85
N87
#9997=" "
N85
#20=#20+1
END4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;报警信息记录
IF#9997==" "GOTO90
IF#904.itemdesc[#904.itemnum-2]==#9997GOTO90
#904=FIX[[#904.itemnum-1]/10]
#904.item[#904.itemnum-1]=#324
#904.itemdesc[#904.itemnum-1]=#9997
#904.itemversion[#904.itemnum-1]=1
#904.itemnum=#904.itemnum+1
N90
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;三色灯
IF#341.item[0]==0GOTO92
IF[#319.itemversion[3]==1]+[#319.item[6]==1]GOTO91;就绪
IF[#341.itemdesc[1]==0]*[#1023.item[#341.item[0]-1]==#341.item[1]]THEN#1023.item[#341.item[0]-1]=1-#341.item[1]
IF[#341.itemdesc[1]==1]*[#1030.item[#341.item[0]-1]==#341.item[1]]THEN#1030.item[#341.item[0]-1]=1-#341.item[1]
GOTO92
N91
IF[#341.itemdesc[1]==0]*[#1023.item[#341.item[0]-1]!=#341.item[1]]THEN#1023.item[#341.item[0]-1]=#341.item[1]
IF[#341.itemdesc[1]==1]*[#1030.item[#341.item[0]-1]!=#341.item[1]]THEN#1030.item[#341.item[0]-1]=#341.item[1]
N92

IF#341.item[2]==0GOTO94
IF[#319.itemversion[3]==0]+[#319.item[6]==1]GOTO93;工作
IF[#341.itemdesc[3]==0]*[#1023.item[#341.item[2]-1]==#341.item[3]]THEN#1023.item[#341.item[2]-1]=1-#341.item[3]
IF[#341.itemdesc[3]==1]*[#1030.item[#341.item[2]-1]==#341.item[3]]THEN#1030.item[#341.item[2]-1]=1-#341.item[3]
GOTO94
N93
IF[#341.itemdesc[3]==0]*[#1023.item[#341.item[2]-1]!=#341.item[3]]THEN#1023.item[#341.item[2]-1]=#341.item[3]
IF[#341.itemdesc[3]==1]*[#1030.item[#341.item[2]-1]!=#341.item[3]]THEN#1030.item[#341.item[2]-1]=#341.item[3]
N94

IF#341.item[4]==0GOTO96
IF#319.item[6]==0GOTO95;故障
IF[#341.itemdesc[5]==0]*[#1023.item[#341.item[4]-1]==#341.item[5]]THEN#1023.item[#341.item[4]-1]=1-#341.item[5]
IF[#341.itemdesc[5]==1]*[#1030.item[#341.item[4]-1]==#341.item[5]]THEN#1030.item[#341.item[4]-1]=1-#341.item[5]
GOTO96
N95
IF[#341.itemdesc[5]==0]*[#1023.item[#341.item[4]-1]!=#341.item[5]]THEN#1023.item[#341.item[4]-1]=#341.item[5]
IF[#341.itemdesc[5]==1]*[#1030.item[#341.item[4]-1]!=#341.item[5]]THEN#1030.item[#341.item[4]-1]=#341.item[5]
N96
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(润滑油泵策略)
IF[#340.item[4]==1]+[#340.item[2]==0]GOTO99
#340.itemversion[0]=#9990.channel/1000/[#340.item[0]+#340.item[1]]
IF#340.itemversion[0]==#340.itemversion[1]GOTO98
#340.itemversion[1]=#340.itemversion[0]
#340.itemversion[4]=#9990.channel
IF#340.itemdesc[2]==0THEN#1023.item[#340.item[2]-1]=#340.item[3]
IF#340.itemdesc[2]==1THEN#1030.item[#340.item[2]-1]=#340.item[3]
N98
IF#9990.channel>#340.itemversion[4]+#340.item[1]*1000GOTO97
GOTO99
N97
IF#340.itemdesc[2]==0THEN#1023.item[#340.item[2]-1]=1-#340.item[3]
IF#340.itemdesc[2]==1THEN#1030.item[#340.item[2]-1]=1-#340.item[3]
N99
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(手轮自动引导)
IF[#319.item[15]==0]+[#1024.item[10]==0]+[#1024.itemversion[11]==0]GOTO100
#1024=#1024+#1024.itemversion[11]
IF#1024>400THEN#1024=#1024-400
N100
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#945.item[13]=#1024.item[14]-#945.item[12]
#945.item[12]=#945.item[11]
#945.item[11]=#945.item[10]
#945.item[10]=#945.item[9]
#945.item[9]=#945.item[8]
#945.item[8]=#1024.item[14]
IF#945.item[5]==0THEN#945.item[0]=0
IF[#1021.item[0]==2]*[#319.itemversion[3]==0]*[#945.item[5]==1]GOTO300
GOTO301
N300
#945.item[14]=#945.item[14]+1
IF#945.item[14]<3GOTO301
#945.item[0]=1
#319.item[15]=1
N301

IF[#945.item[0]==1]GOTO302
GOTO310
N302
IF#945.item[4]==#1024.item[15]GOTO304
#945.item[4]=#1024.item[15]
#319.item[15]=0
#1020.item[0]=2
#945.item[14]=0
#945.item[0]=0
GOTO310
N304
IF#319.item[3]==0GOTO306
GOTO309
N306
IF#945.item[13]>0GOTO307
IF#945.item[13]<0GOTO308
GOTO310
N307
#319.item[15]=1
widgetFunc["SysFunc","","ncParser","mpg/fwd.nc"]
GOTO310
N308
#319.item[15]=1
widgetFunc["SysFunc","1","ncParser","mpg/rev.nc"]
GOTO310
N309
IF[#404!="mpg/fwd.nc"]*[#404!="mpg/rev.nc"]*[#404!="pause.nc"]GOTO314
IF[#404=="mpg/fwd.nc"]*[#945.item[13]<0]GOTO311
IF[#404=="mpg/rev.nc"]*[#945.item[13]>0]GOTO311
IF#945.item[13]==0GOTO311
GOTO310
N311
#319.item[2]=1
N310
IF[#945.item[0]==0]*[#945.item[7]==1]*[#319.itemversion[3]==0]GOTO312
IF[#945.item[0]==1]*[[#1024.item[15]==0]]GOTO312
GOTO313
N314
#1020.item[0]=0
#945.item[0]=0
#319.item[15]=0
#945.item[14]=0
GOTO313
N312
#945.item[0]=0
#319.item[15]=0
IF#319.item[3]==1THEN#319.item[2]=1
#945.item[14]=0
N313
#945.item[7]=#945.item[0]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(自动压辊)
#20=0;压辊序号
WHILE#20<8DO10
IF#951.item[#20*5]==0GOTO201;自动压辊未开启退出
IF#903.itemmin[27+#20]==0GOTO201;压辊信号未使能退出
IF#903.item[27+#20]==0GOTO201;压辊信号未分配退出
#23=1023*[#903.itemversion[27+#20]==0]+1030*[#903.itemversion[27+#20]==1];压辊信号源 板载/Modbus
IF[#951.item[#20*5+1]>=#951.item[#20*5+2]]*[#951.item[#20*5+3]>=#951.item[#20*5+4]]GOTO202;压辊检测区域无效退出
#21=[[#1010.item[59]>#951.item[#20*5+1]]*[#1010.item[59]<#951.item[#20*5+2]]];X轴向压辊检测
#22=[[#1011.item[59]>#951.item[#20*5+3]]*[#1011.item[59]<#951.item[#20*5+4]]];Y轴向压辊检测
IF[#951.item[#20*5+1]>=#951.item[#20*5+2]]*[#22==0]GOTO202;非压辊区域退出
IF[#951.item[#20*5+3]>=#951.item[#20*5+4]]*[#21==0]GOTO202;非压辊区域退出
IF[#951.item[#20*5+1]<#951.item[#20*5+2]]*[#951.item[#20*5+3]<#951.item[#20*5+4]]*[[#21==0]+[#22==0]]GOTO202;非压辊区域退出
IF#[#23].item[#903.item[27+#20]-1]!=#903.itemmax[27+#20]THEN#[#23].item[#903.item[27+#20]-1]=#903.itemmax[27+#20]
GOTO201
N202
IF#[#23].item[#903.item[27+#20]-1]!=1-#903.itemmax[27+#20]THEN#[#23].item[#903.item[27+#20]-1]=1-#903.itemmax[27+#20]
N201
#20=#20+1
END10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
