版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
KUKA通信子程序p00.src注释DEFP00(COMMAND:IN,PGNO_FUNCT:IN,>_ID[]:OUT,E_NO:IN)DECLP00_COMMANDCOMMANDDECLFUNCT_TYPEPGNO_FUNCTDECLCHARP_ID[]INTE_NOE6AXISAK_AXISSTRUCE6AXISREALA1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6$OPERATE.SRCREALAX_DISTSWITCHCOMMANDCASE#INIT_EXTINIT_EXT()CASE#EXT_PGNOEXT_PGNO(PGNO_FUNCT)CASE#CHK_HOMECHK_HOME()CASE#EXT_ERREXT_ERR(P_ID[],E_NO)ENDSWITCHEND;********************************;函数:初始化外部接口;********************************DEFINIT_EXT()BOOLERRORINTNPGNO_ERROR=0;********************************;CHECKHOME;********************************;********************************;INITPGNO_REQUNDAPPL_RUN;********************************IF(PGNO_REQ>0)THEN$OUT[PGNO_REQ]=FALSEENDIFIF(PGNO_REQ<0)THEN$OUT[-PGNO_REQ]=TRUEENDIFIF(APPL_RUN>0)THEN$OUT[APPL_RUN]=FALSEENDIFIFPLC_ENABLEAND(ERR_TO_PLC>0)THEN$OUT[ERR_TO_PLC]=FALSEENDIFIFREFLECT_PROG_NR==1THENFORN=0TOPGNO_LENGTH-1$OUT[PGNO_FBIT_REFL+N]=FALSEENDFORENDIF$LOOP_MSG[]=" ";*******************REPEAT;***********************************************************ERROR=FALSEREPEATIF($I_O_ACTCONF==FALSE)THENERROR=TRUEP00_MSG(13)ENDIFUNTIL($I_O_ACTCONF==TRUE)SWITCHPGNO_TYPE;*********************************************************CASE1,2;bci-coding,bcd-coding;*********************************************************;*****CHECKPGNO_LENGTH*****IF(PGNO_LENGTH<1)THENERROR=TRUE;pgno_lengthP00_MSG(2)ENDIFIF(PGNO_TYPE==1)THEN;bci-codingIF(PGNO_LENGTH>16)THENERROR=TRUE;pgno_lengthP00_MSG(2)ENDIFENDIFIF(PGNO_TYPE==2)THEN;bcd-codingSWITCHPGNO_LENGTHCASE4,8,12,16DEFAULTERROR=TRUE;pgno_lengthP00_MSG(3)ENDSWITCHENDIF;*****CHECKPGNO_FBIT*****IF(PGNO_FBIT<1)THENERROR=TRUE;pgno_fbitP00_MSG(4)ENDIF;*****CHECKPGNO_REQ*****IF(PGNO_REQ==0)THENERROR=TRUE;pgno_reqP00_MSG(7)ENDIFIF(PGNO_REQ>0)THEN;activehigh$OUT[PGNO_REQ]=FALSE;resetWAITSEC0.2;delayforplcENDIFIF(PGNO_REQ<0)THEN;activelow$OUT[PGNO_REQ*(-1)]=TRUE;resetWAITSEC0.2;delayforplcENDIF;*********************************************************CASE3;oneoutofn;*********************************************************;*****CHECKPGNO_LENGTH*****IF(PGNO_LENGTH<1)THENERROR=TRUE;pgno_lengthP00_MSG(2)ENDIFIF(PGNO_LENGTH>16)THENERROR=TRUE;pgno_lengthP00_MSG(2)ENDIF;*****CHECKPGNO_FBIT*****IF(PGNO_FBIT<1)THENERROR=TRUE;pgno_fbitP00_MSG(4)ENDIF;*********************************************************DEFAULT;PGNO_TYPEwrongtype;*********************************************************ERROR=TRUE;pgno_typeP00_MSG(1)ENDSWITCH;***********************************************************UNTIL(ERROR==FALSE)ENDDEFEXT_PGNO(FUNCT);Function:communicationprogram;forexternalmode;********************************DECLFUNCT_TYPEFUNCTINTI,J,K,L,M,NBOOLP_RECVBOOLP_CALCJ=1K=0L=1P_RECV=FALSEP_CALC=FALSEIF(APPL_RUN>0)THEN$OUT[APPL_RUN]=FALSEENDIFSWITCHFUNCT;*******************CASE#PGNO_ACKN;*******************IF(PGNO_REQ>0)THEN$OUT[PGNO_REQ]=FALSEENDIFIF(PGNO_REQ<0)THEN$OUT[PGNO_REQ*(-1)]=TRUEENDIFIF(APPL_RUN>0)THEN$OUT[APPL_RUN]=TRUEENDIF;*******************CASE#PGNO_GET;*******************IFREFLECT_PROG_NR==1THENFORN=0TOPGNO_LENGTH-1$OUT[PGNO_FBIT_REFL+N]=FALSEENDFORENDIFSWITCHPGNO_TYPE;*******************CASE1,2;*******************IF(PGNO_VALID>0)THENWAITFOR$IN[PGNO_VALID]==FALSEENDIFIF(PGNO_VALID==0)THENWAITFOR$EXT_START==FALSEENDIFIF(PGNO_VALID<0)THENWAITFOR$IN[PGNO_VALID*(-1)]==TRUEENDIFIF(PGNO_REQ>0)THEN$OUT[PGNO_REQ]=TRUEENDIFIF(PGNO_REQ<0)THEN$OUT[PGNO_REQ*(-1)]=FALSEENDIFIF(PGNO_VALID>0)THENREPEATIFREFLECT_PROG_NR==1THENFORI=0TOPGNO_LENGTH-1IF$IN[PGNO_FBIT+I]==TRUETHEN$OUT[PGNO_FBIT_REFL+I]=TRUEELSE$OUT[PGNO_FBIT_REFL+I]=FALSEENDIFENDFORENDIF$LOOP_MSG[]="WaitforPGNO_VALID=True"UNTIL$IN[PGNO_VALID]==TRUE$LOOP_MSG[]="ENDIFIF(PGNO_VALID==0)THENREPEATIFREFLECT_PROG_NR==1THENFORI=0TOPGNO_LENGTH-1IF$IN[PGNO_FBIT+I]==TRUETHEN$OUT[PGNO_FBIT_REFL+I]=TRUEELSE$OUT[PGNO_FBIT_REFL+I]=FALSEENDIFENDFORENDIF$LOOP_MSG[]="Waitfor$EXT_START=True"UNTIL$EXT_START==TRUE$LOOP_MSG[]="ENDIFIF(PGNO_VALID<0)THENREPEATIFREFLECT_PROG_NR==1THENFORI=0TOPGNO_LENGTH-1IF$IN[PGNO_FBIT+I]==TRUETHEN$OUT[PGNO_FBIT_REFL+I]=TRUEELSE$OUT[PGNO_FBIT_REFL+I]=FALSEENDIFENDFORENDIF$LOOP_MSG[]="WaitforPGNO_VALID=False"UNTIL$IN[PGNO_VALID*(-1)]==FALSE$LOOP_MSG[]="ENDIFPGNO=0SWITCHPGNO_TYPE;*******************CASE1;*******************FORI=0TOPGNO_LENGTH-1IF$IN[PGNO_FBIT+I]THENIFREFLECT_PROG_NR==1THEN$OUT[PGNO_FBIT_REFL+I]=TRUEENDIFPGNO=PGNO+JENDIFJ=J*2ENDFOR;*******************CASE2;*******************FORI=0TOPGNO_LENGTH-1STEP4N=0J=1FORM=ITOI+3IF$IN[PGNO_FBIT+M]THENN=N+JIFREFLECT_PROG_NR==1THEN$OUT[PGNO_FBIT_REFL+M]=TRUEENDIFENDIFJ=J*2ENDFORIF(N>9)THENPGNO_ERROR=2PGNO=0EXITELSEPGNO=PGNO+N*LL=L*10ENDIFENDFORENDSWITCHIF(PGNO_ERROR<>2)THENIF(PGNO_PARITY>0)THENP_RECV=$IN[PGNO_PARITY]FORI=0TOPGNO_LENGTH-1P_CALC=P_CALCEXOR$IN[PGNO_FBIT+I]ENDFORIF(P_RECV<>P_CALC)THENPGNO=0PGNO_ERROR=1ELSEPGNO_ERROR=0ENDIFENDIFIF(PGNO_PARITY<0)THENP_RECV=$IN[PGNO_PARITY*(-1)]FORI=0TOPGNO_LENGTH-1P_CALC=P_CALCEXOR$IN[PGNO_FBIT+I]ENDFORIF(P_RECV<>NOT(P_CALC))THENPGNO=0PGNO_ERROR=1ELSEPGNO_ERROR=0ENDIFENDIFENDIF;*******************CASE3;*******************IFPGNO>0THENWAITFOR$IN[PGNO_FBIT+PGNO-1]==FALSEENDIFK=0REPEATFORI=0TOPGNO_LENGTH-1IF$IN[PGNO_FBIT+I]THENIFK==0THENK=I+1ELSEPGNO_ERROR=0K=0ENDIFENDIFENDFORUNTIL((K<>0)OR(PGNO_ERROR==0))PGNO=KENDSWITCH;***********************************************************CASE#PGNO_FAULT;***********************************************************IFPGNO_ERROR==1THENP00_MSG(10)ENDIFIFPGNO_ERROR==2THENP00_MSG(12)ENDIFIFPGNO_ERROR==0THENIF(PGNO_TYPE==3)THENP00_MSG(15)ELSEP00_MSG(11)ENDIFENDIFPGNO_ERROR=0IF(PGNO_REQ>0)THEN$OUT[PGNO_REQ]=FALSEENDIFIF(PGNO_REQ<0)THEN$OUT[PGNO_REQ*(-1)]=TRUEENDIFWAITSEC0.5ENDSWITCHENDDEFCHK_HOME()BOOLHDECLMSG_TP_MSGDECLMSG_TEMPTY_MSGIF($I_O_ACTCONF==TRUE)THENEMPTY_MSG=(MSG_T:VALIDFALSE,RELEASEFALSE,TYP#NOTIFY,MODUL[]"",KEY[]"”,PARAM_TYP#VALUE,PARAM[]"",DLG_FORMAT[]"”,ANSWER0}P_MSG={MSG_T:VALIDFALSE,RELEASEFALSE,TYP#QUIT,MODUL[]"P00”,KEY[]"MoveHomeInT1",PARAM_TYP#KEY,PARAM[]"",DLG_FORMAT[]"",ANSWER0}$MSG_T=P_MSGWAITSEC1.0REPEATH=TRUEIF($IN_HOME==FALSE)THENH=FALSE$MSG_T.VALID=TRUEREPEATHALTIF(($MODE_OP==#T1)OR($MODE_OP==#T2))THEN$MSG_T.RELEASE=TRUE$MSG_T=EMPTY_MSGRETURNENDIFUNTIL$IN_HOME==TRUEELSEH=TRUEENDIFUNTIL((H==TRUE)OR($I_O_ACTCONF==FALSE))ENDIFENDDEFEXT_ERR(P_ID,E_NO:IN);******************************;Function:ext.errormessages;forpackageP00;******************************CHARP_ID[]INTE_NO,M;*********MODUL-/FEHLER-NUMMERAUSWERTEN********I=1FOUND=FALSEIF(E_NO==0)THENIFPLC_ENABLETHENERR=0WAITSEC0.2IF(ERR_TO_PLC>0)THEN$OUT[ERR_TO_PLC]=FALSEWAITSEC0.2ENDIFENDIFELSEIFPLC_ENABLETHENFOUND=FALSE;******************************;APPLIKATIONS-FEHLERAUSWERTEN;******************************I=1REPEATIF(E_NO==P[I].ERR)THENIF(P_ID[1]==P[I].PKG[1])THENIF(P_ID[2]==P[I].PKG[2])THENIF(P_ID[3]==P[I].PKG[3])THENFOUND=TRUEERR=P[I].OUTF_WRITE()ENDIFENDIFENDIFENDIFI=I+1UNTIL(I>MAXERR_A)ORFOUND;***************************;$STOPMESS-FEHLERAUSWERTEN;***************************I=128IF(P_ID[1]=="C")THENIF(P_ID[2]=="T")THENIF(P_ID[3]=="L")THENM=MBX_REC(1,MLD)IFM==0THENREPEATIF(MLD.MESSNO==P[I].ERR)THENFOUND=TRUEERR=P[I].OUTF_WRITE()ENDIFI=I+1UNTIL(I>MAXERR_C+128-1)ORFOUNDENDIFENDIFENDIFENDIFIF(ERR_TO_PLC>0)THEN$OUT[ERR_TO_PLC]=TRUEENDIFENDIFENDIFENDDEFF_WRITE()IF(F_NO>64)THENF_NO=1ENDIFERR_FILE[F_NO].P[1]=P[I].PKG[1]ERR_FILE[F_NO].P[2]=P[I].PKG[2]ERR_FILE[F_NO].P[3]=P[I].PKG[3]ERR_FILE[F_NO].E=P[I].ERRF_NO=F_NO+1ENDDEFP00_MSG(MSG_NO:IN)DECLINTOFFSET,MSG_NODECLSTATE_TSTATEDECLMSG_TP_MSGDECLMSG_TEMPTY_MSGEMPTY_MSG=(MSG_T:VALIDFALSE,RELEASEFALSE,TYP#NOTIFY,MODUL[]"”,KEY[]””,P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025营养指导员理论知识考核试题库及答案
- 锅炉水处理考试试卷及答案
- 基坑监测施工方案
- 人工智能技术在初中物理实验中的应用与创新教学研究课题报告
- 2026年杭州市党校系统事业单位人员招聘考试备考试题及答案详解
- 2026西昌学院直接考核招聘55人笔试备考题库及答案解析
- 2026年克拉玛依市街道办人员招聘考试备考试题及答案详解
- 2026年湖北省环境系统事业单位人员招聘考试备考试题及答案详解
- 2026年抚顺市不动产登记中心人员招聘考试备考试题及答案详解
- 2026江苏常州常供电子商务有限公司招聘主办会计1人笔试备考题库及答案解析
- 系统可靠性方案
- 有限空间作业安全告知
- 主要通风更换方案及安全技术措施
- xfd1h2hs型踏面制动单元大修
- 钱梁实秋优秀课件
- 预防接种妈妈课堂课件
- RB/T 019-2019实验动物设施性能及环境参数验证程序指南
- 《钢结构工程施工员培训教材》
- GB/T 18993.1-2020冷热水用氯化聚氯乙烯(PVC-C)管道系统第1部分:总则
- GB/T 1406.1-2008灯头的型式和尺寸第1部分:螺口式灯头
- GB 17840-1999防弹玻璃
评论
0/150
提交评论