📄 sszjqz.plm
字号:
WYX(6)=WYX(6)+1;
M=WYX(6)*6+(WYX(5)-1)*2+J;
CALL MOVXD0(M,.YZDDY(X),2);
;
CALL DLDL;
ERR1=14;
END;
END;
YZDDY(0)=YZDDY(0)+YZDDY(X);
LYS(X)=LLYS(X);
CALL DLDL;
IF LYS(X)<>TQLL1 THEN
DO;
MM2=(WYX(5)-1)*2+2068H;
CALL MOVXD0(MM2,.TQLL2,2);
;
CALL DLDL;
IF TQLL1=TQLL2 THEN
DO;
LYS(X)=TQLL1;
LLYS(X)=TQLL1;
CALL DLDL;
END;
ELSE
DO;
ERR1=14;
END;
END;
IF YZDDY(X)=0 THEN
DO;
SL(X)=SL(X-1);
GOTO QQQD;
END;
IF WYX(5)=1 THEN
DO;
D244=1;
CALL DLDL;
XS=7CH;
END;
IF WYX(5)=2 THEN
DO;
D244=2;
CALL DLDL;
XS=73H;
END;
IF WYX(5)=3 THEN
DO;
D244=3;
CALL DLDL;
XS=4FH;
END;
PPB=XS;
Q2: CALL ZT;
CALL ADYX;
SL(X)=SJZL;
IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
SJL(X)=SJZL-SL(X-1);
CALL SZXS;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
IF SJZL-SL(X-1)+LYS(X)<YZDDY(X)*8/10 THEN GOTO Q2;
/* IF SJZL-SL(0)+LYS(X)<YZDDY(0)*7/10 THEN GOTO Q2;
IF WYX(5)=1 THEN XS=7EH;
IF WYX(5)=2 THEN XS=7BH;
IF WYX(5)=3 THEN XS=6FH;*/
IF WYX(5)=1 THEN
DO;
D244=1;
CALL DLDL;
XS=7EH;
END;
IF WYX(5)=2 THEN
DO;
D244=2;
CALL DLDL;
XS=7BH;
END;
IF WYX(5)=3 THEN
DO;
D244=3;
CALL DLDL;
XS=6FH;
END;
PPB=XS;
Q22: CALL ZT;
CALL ADYX;
SL(X)=SJZL;
IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
SJL(X)=SJZL-SL(X-1);
CALL SZXS;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
IF SJZL-SL(0)+LYS(X)<YZDDY(0) THEN GOTO Q22;
PPB=7FH;/*一种物料结束*/
M=(WYX(5)-1)*2+I+1;
DO DLW=0 TO 100;
CALL ADYX;
SL(X)=SJZL;
IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
SJL(X)=SJZL-SL(X-1);
CALL SZXS;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
END;
D244=0;
CALL ADYX;
SL(X)=SJZL;
IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
SJL(X)=SJZL-SL(X-1);
CALL SZXS;
CALL MOVDX0(.SJL(X),M,2);
CALL DLDL;
CALL DLDL;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
QQQD: ;
END;/*秤量一种物料结束*/
QD: PROCEDURE;/*启动*/
DECLARE DL BYTE;/*循环变量*/
PPB=7FH;
;
XS=7FH;
PPC=0FBH;/*运行灯亮,其它灯不亮;*/
;
XY=0FBH;
CALL ADYX;
YZDDY(0)=0;
SL(0)=SJZL;
DO X=1 TO 3;
WYX(5)=X;
CALL QD2;
END;
PPB=7FH;
;
XS=7FH;
I=I+6;
CALL MOVDX0(.WYX(6),L,1);
PPC=0F3H;/*料满*/
;
XY=0F3H;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
PPB=0BFH;/*卸料*/
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
DDX1(3)=SJL(X)/256;
DDX1(4)=SJL(X) MOD 256;
IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
CALL CXKK;
CALL DLDL;
DDX1(3)=DDX1(3) AND 0FH;
CALL DLD1;
PPB=0FFH;
;
XS=0FFH;
PPC=0FBH;/*运行灯亮,其它灯不亮;*/
;
XY=0FBH;
LL=I;
;
D=D+1;
LLL=D;
;
IF I>2100H+7000 OR D>1000 THEN
DO;
I=2100H+7000;
D=1000;
END;
RETURN;
END QD; /*启动结束*/
PFPF: PROCEDURE;/*选配方*/
/* WYX(6)=WYX(6)+1;
IF WYX(6)>=10 THEN WYX(6)=0;
CALL MOVDX0(.WYX(6),L,1);
CALL DLD1;*/
CALL DLD1;
P13=NOT P13;
JJSS=2002H;
PPC=0F9H;/*预置灯亮,其它灯不亮;*/
;
XY=0F9H;
CALL DLDL;/*TIME(75)*/
XHHX: JP=DJP;
IF JP=11 THEN GOTO CQCQ;
DDX1(3)=30H;
DDX1(4)=00H;
CALL CXKK;
IF (DDX1(1) AND 30H)=30H THEN
DO;
DDX1(1)=DDX1(1) AND 0FH;
DDXX=DDX1(1)*256+DDX1(2);
CALL MOVDX0(.DDXX,JJSS,2);/*存配方预置数*/
CALL DLDL;
CALL DLDL;
JJSS=JJSS+2;
IF JJSS>=2002H+60 THEN JJSS=2002H;
END;
GOTO XHHX;
CQCQ: ;
ZTZW=ZTZW+1;
PPC=0FBH;/*预置灯亮,其它灯不亮;*/
;
XY=0FBH;
CALL DLD1;
END;/*配方结束*/
WZ: PROCEDURE;/*物重*/
DECLARE
GGG BYTE,
GG WORD,/*预置重量*/
G WORD,/*预置重量*/
YL WORD;/*预置重量*/
PPC=0FDH;
;
CALL DLD1;
XY=0FDH;
JJS1=2101H;
JJS3=0;
IF (LLLL=0) OR (LLLL>1000) THEN LLLL=1;
YL=LLLL-1;
WYX(5)=1;
WWZZ: JP=DJP;
KZ=KKZ;
P13=NOT P13;
IF JP=18 THEN
DO;
YL=YL+1;
WYX(1)=YL MOD 10;
WYX(2)=YL/10 MOD 10;
WYX(3)=YL/100 MOD 10;
WYX(4)=YL/1000;
WYX(5)=0;
CALL SZXS;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
DO GGG=1 TO 3;
G=(YL-1)*6+(GGG-1)*2+2101H;
CALL MOVXD0(G,.GG,2);
CALL DLDL;
WYX(1)=GG MOD 10;
WYX(2)=GG/10 MOD 10;
WYX(3)=GG/100 MOD 10;
WYX(4)=GG/1000;
WYX(5)=GGG;
CALL SZXS;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
END;
END;
IF JP=19 THEN
DO;
D=0;
I=2100H;
LL=I;
CALL DLDL;
LLL=D;
CALL DLDL;
LGZ: CALL MOVDX0(0,I,1);
CALL DLDL;
I=I+1;
IF I<3F00H THEN GOTO LGZ;
I=2100H;
CALL DLD1;
END;
IF JP=11 THEN GOTO GGKL;
IF KZ=4 THEN GOTO GGKL;
CALL MOVXD0(JJS1,.DDXX1,2);/*存配方预置数*/
CALL DLDL;
CALL DLDL;
JJS2=JJS3 MOD 3;
IF JJS2=0 THEN
DO;
DDX1(3)=DDXX1/256+10H;
DDX1(4)=DDXX1 MOD 256;
END;
IF JJS2=1 THEN
DO;
DDX1(3)=DDXX1/256+20H;
DDX1(4)=DDXX1 MOD 256;
END;
IF JJS2=2 THEN
DO;
DDX1(3)=DDXX1/256+30H;
DDX1(4)=DDXX1 MOD 256;
END;
CALL CXKK;
IF (DDX1(1) AND 20H)=20H THEN
DO;
DDX1(1)=DDX1(1) AND 0FH;
JJS1=JJS1+2;
JJS3=JJS3+1;
END;
GOTO WWZZ;
GGKL: ZTZW=ZTZW+1;
PPC=0F9H;
;
CALL DLD1;
XY=0F9H;
CALL DLD1;
CALL DLD1;
END WZ;/*物重结束*/
QLQL: PROCEDURE;
CALL ADYX;
QLL=SJZL;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
CALL DLD1;
END QLQL;
IO8255=98H;
;
PPB=0FFH;
;
XS=0FFH;
PPC=0FFH;
;
XY=0FFH;
J=2002H;
L=20F0H;
CALL MOVXD0(L,.WYX(6),1);/*取数据*/
CALL DLDL;
IF LL<2100H OR LL>3F00H THEN
DO;
LL=2100H;
CALL DLDL;
LLL=0;
CALL DLDL;
END;
I=LL;
CALL DLDL;
D=LLL;
CALL DLDL;
QLL=0;
ERR1=0;
WYX(5)=1;
WYX(7)=0;
WYX(8)=0;
ZTZW=4;
TMOD=20H;
TH1=0F3H;
TL1=0F3H;
SCON=50H;
PCON=80H;
TR1=1;
DQ=0;
JJSS=2002H;
D244=0;
DDX1(3)=0;
DDX1(4)=0;
YYYY: P13=NOT P13;
PPC=0FBH;/*运行灯亮,其它灯不亮;*/
;
XY=0FBH;
YXYX: KZ=KKZ;
CALL ADYX;
PPB=7FH;
;
XS=7FH;
;
D244=0;
CALL SZXS;
IF KZ=1 THEN
DO;
DQ=1;
END;
ELSE
DO;
DQ=0;
END;
IF KZ=2 THEN CALL QD;
/* IF KZ=3 THEN CALL PFPF;*/
/* IF KZ=4 THEN GOTO YYXX;*/
JP=DJP;
IF JP=19 THEN CALL QLQL;
/* IF JP=18 THEN CALL DYY;*/
IF JP=17 THEN CALL QD;
/* IF JP=12 THEN CALL PFPF;*/
IF JP=11 THEN GOTO YYXX;
CALL DLDL;
CALL DLDL;
IF ERR1=14 THEN PPC=0F8H;
/* IF DQ>=2 THEN DQ=0;*/
IF DQ=0 THEN
DO;
DDX1(3)=0;
DDX1(4)=2;
END;
IF DQ=1 THEN
DO;
DDX1(3)=0;
DDX1(4)=1;
END;
CALL CXKK;
GOTO YXYX;
YYXX: CALL DLD1;
ZTZW=ZTZW+1;
IF ZTZW>4 THEN ZTZW=1;
IF ZTZW=1 THEN CALL YZ;
IF ZTZW=2 THEN CALL WZ;
IF ZTZW=3 THEN CALL PFPF;
IF ZTZW=4 THEN GOTO YXYX;
GOTO YYYY;
END ST0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -