2022汇川机器人系统指令手册_第1页
2022汇川机器人系统指令手册_第2页
2022汇川机器人系统指令手册_第3页
2022汇川机器人系统指令手册_第4页
2022汇川机器人系统指令手册_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

手册与软件S03.21R本手册不随产品发货,如需获取电子版PDF登录汇川技术官网网站),“并下载。 #指令注 PR Open Open Close Close Send Get B/R/D/PR/P/PALLET/LB/LR/LD/LPR/LP/LPALLET/义变量IO1TRUE、144‑2^128~8‑2^1024~同同同‑2^1024~同同同‑2^1024~ByteAAA;AAA278;AAA22;BOOLBBB;BBB=3;BBBByteAAA278会报错。

BRDLBLRLD的赋值,都有值范围的判断,超出范围时,执行结果会提示报警,但是BRDLBLRLD作为参数传入到函数中时,采取强制转换的方式。IOB[0]In[X];(X的范围为0‑13823)//ON时为1,OFF为0R[0]InB[X](X的范围为0~1727)R[0]OutB[X](X的范围为0~1727)R[0]InW[X](X的范围为0~863)R[0]OutW[X](X的范围为R[0]InB[0].IntR[0]=D[0]InB[0].FloatD[0]=InW[0].D[0]InB[0].DoubleD[0]=InW[0].只有INB\INW\OutB\OutW支持按照Int、Float和Double访问,bit类型的In和OutIO当右表达式的值为数值1时,与ON是等价的;当右表达式的值为0时,与OFF值时,运行会报错。OutB[5]3;OutW[5]3;OutB[X].Int=<Var>(X的范围为0~1727)OutW[X].Int=<Var>(X的范围为InW[X].Int=<Var>(作为左值时,X支持操作的范围为800‑863的内存IO)OutB[X].Float<Var>(X的范围为0~1727)OutW[X].Float<Var>(X的范围为InW[X].Float<Var>(作为左值时,X支持操作的范围为800‑863的内存IO)OutB[X].Double=<Var>(X的范围为0~1727)OutW[X].Double=<Var>(X的范围为InW[X].Double=<Var>(作为左值时,X支持操作的范围为800‑863的内存IO)&OUT[0]&|位或示 OUT[0]|^OUT[0]^!位非示 <<左移 OUTB[0]=1<<6 OUTB[0]=8>>1256个256个Intasd;BOOLBOOL变量名[元素个数][元素个数]={{元素1,元素2…},{元素1,元素BOOL变量名[元素个数][元素个数][元素个数]={{{元素1,元素2…},{元素1,元素{{元素1,元素2…},{元素1,元素BoolVar_Bool=true;IntVar_Int[2]={1,3};FloatVar_Float[2][3]=PrintPrintPrintPrintPrint1131其中系统内置结构体变量P/LPPR/LPRTOOLUSERPR/LPR/TOOL/USER结构体变量成员如:PR[*].XTool[*].XP[0].Data[0]=P[0].Data[1]=P[0].Data[2]=P[0].Data[3]=P[0].CrdNo=P[0].UserNo=StructAAABoolvar2;ByteAAAas;0as.var16;#结构体中成员的赋值Printas.var1;#信号变量是与IO有关的变量,有In、Out、AD、DA每个信号变量在缺少权限时也不能使用。例:使用该IO的控制为PLC,BRDSTRPR全局PINOUTIGOGDA局部变量(LPLBLRLDLPRLPalletOpenclose指令调用SocketCom口的连VelsetVelsetvlaueVelsetOFFVelsetGroupIGIGOG为未axis:axis:CnvVisionRefSysii.示教器修改工程任意文件,在未触发同步到控制器操作时,立即切换连接到PCInoRobotLab即使Movj指令带了Nwait,一定要等P[0]到位停止后才将系统工具号切换为5=赋值运算符+加法运算符–*乘法运算符ANDOR><=关系大于等于&|^位异或;, MovjP,V,Z,Tool,[User],[Acc],[Dec],[NWait],[UntilIn==value],…],[P:偏移形式:OffsetJ(PPR)、OffsetT(PPR)、Offset(PPR)、Offset(PX,Y…)详细请参见第29PE说明”。详细内容请参见第131页“8.5.7Offset”。Colunm,Lay)第150页“8.5.20P=Pallet”。可选有Fine、Z[0]、Z[1]、Z[2]、Z[3]、Z[4]、Z[5]、...Z[200]、Z[CP]若当前指令为MovJ\MovL\Movc指令,当相对过渡等级m等于100为指令长度的一半,与Z[CP]效果一致。当相对过渡等级m大于100时,过渡长度将超过指令的一半。当ZR参数为200时,表示过渡长度为运动指令的全长。若当前指令为Jump\Jumpl指令且附加参数RH=0,当相对过渡等级m大于100渡长度将超过指令的一半,当ZR参数为200时,表示过渡长度为运动指令的全长。User:(可选参数)选用的用户坐标系,取当不使用此参数时,默认Dec与Acc值一致。最小生效值20%1、果后一条为运动指令,不管该条运动指令是否有NWait,MovjP[1],V[30],Z[0],NWait;连续运动末尾带有NWait示例 示例 Movj MovjMovj MovjMovj MovjMovj Movj MovjMovjMovj==In:输入信号,仅支持Value:输入信号值,ON或Out(No,value,Type)…:(可选参数)Type:运动中输出信号的类型。不同类型运动能使用不同的Typen<0表示运动到距终点nJump/JumpL使用D[n]和S[n]若希望机器人通过奇异位置,则只能使用MovjMovjP[1],V[30],Z[3],OUT(1,ON,T[1.2]),SLOn/SLOff/SLReset该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjPE

SLVSModeMidLevel;Offset(PE,PR),则PEMovjLP[1],V[30],Z[0];MovjOffsetT(PE,PR[0]),V[30],Z[0],PE点位的工具、用户号为LP[1]的工具、用户号,即分别为1、MovjLP[1],V[30],Z[0],Tool[5],MovjOffsetT(PE,PR[0]),V[30],Z[0],PE点位的工具、用户号分别为5、MovjLP[1],V[30],Z[0];MovjOffsetT(PE,PR[0]),V[30],Z[0],PE点位的工具、用户号分别为3、1,和LP[1]过渡长度=过渡等级*有过渡,以1有过渡,以2有过渡,以3有过渡,以4有过渡,以5单位过渡长度分为关节过渡单位和线性过渡单位,MoveJ和Jump(Scara机型3轴仍使用线性单位),注意:对于For、While循环体内首尾衔接的运动,若希望过渡,可使用Nwait两条运动指令间存在其它指令,比如SetOut、B=1若运动指令附带有Nwait动指令的执行时间,若进入过渡区域时,两条运动指令之间的非运动指令已经全部执行结束,机器人将能够维持原有过渡长度。若运动指令未附带Nwait到位保持时间:默认20ms,到位超时时间:系统固定值2000ms最大过渡长度:对于具体的运动,允许的过渡长度是有限制的,当设定过渡长度超出允许的最大过渡长度时,取最大过渡长度作为实际的过渡长度。MovL、MoveJ、MovC的最大允许过渡长度是总长度的一半。对于Jump和JumpL指令,当RH(或LH)等于零时,最大允许过渡长度为总长度的一半;当RH(或LH)不等于零时,最大允许过渡长度为RH(或LH),下图所示。如下图所示,Z确定,会随速度、加速度等参数的改变发生变化,使用时注意在在实际作业速度下确认轨迹,避免发生碰撞。关于Tool利用运动指令中Tool参数,可实现切换工具。使得在使用新工具时,新TCP到达原TCP置姿态。原来使用Tool1示教取点,注意位置变量的工具号选择1Movj MovjMovj MovjMovj Movj 关于User通过运动指令中的UserMovj MovjMovj MovjMovj Movj MovlP,V,Z,Tool,[User],[Acc],[Dec],[NWait],[UntilIn==value],…],[P:偏移形式:OffsetJ(PPR)、OffsetT(PPR)、Offset(PPR)、Offset(PX,Y…)详细请参见第29PE说明”。详细内容请参见第131页“8.5.7Offset”。Colunm,Lay)第150页“8.5.20P=Pallet”。若当前指令为MovJ\MovL\Movc指令,当相对过渡等级m等于100为指令长度的一半,与Z[CP]效果一致。当相对过渡等级m大于100时,过渡长度将超过指令的一半。当ZR参数为200时,表示过渡长度为运动指令的全长。若当前指令为Jump\Jumpl指令且附加参数RH=0,当相对过渡等级m大于100渡长度将超过指令的一半,当ZR参数为200时,表示过渡长度为运动指令的全长。User:(可选参数)选用的用户坐标系,取当不使用此参数时,默认Dec与Acc值一致。最小生效值20%1、果后一条为运动指令,不管该条运动指令是否有NWait,MovlP[1],V[30],Z[0],NWait;连续运动末尾带有NWait示例 示例 Movj MovjMovj MovjMovj MovjMovj Movj MovjMovjMovj==In:输入信号,仅支持Value:输入信号值,ON或Out(No,value,Type)…:(可选参数)No:输出信号序号,仅支持Movj/Movl/Movc/,范围Movj/Movl/Movc/Jump/JumpL使用D[n]和S[n]MovlP[1],V[30],Z[0],OUT(2,ON,S[50]),OUT(2,OFF,S[‑30]);MovlP[2],V[30],Z[0],OUT(3,ON,Ds[68]);MovlP[3],V[30],Z[0],OUT(3,OFF,T[0.5]);SLOn/SLOff/SLReset该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjSLVSModeMidLevel;MovcP,V,Z,Tool,[User],[Acc],[Dec],[NWait],[UntilIn==value],…],[P:偏移形式:OffsetJ(PPR)、OffsetT(PPR)、Offset(PPR)、Offset(PX,Y…)详细请参见第29PE说明”。详细内容请参见第131页“8.5.7Offset”。Colunm,Lay)第150页“8.5.20P=Pallet”。若当前指令为MovJ\MovL\Movc指令,当相对过渡等级m等于100为指令长度的一半,与Z[CP]效果一致。当相对过渡等级m大于100时,过渡长度将超过指令的一半。当ZR参数为200时,表示过渡长度为运动指令的全长。若当前指令为Jump\Jumpl指令且附加参数RH=0,当相对过渡等级m大于100渡长度将超过指令的一半,当ZR参数为200时,表示过渡长度为运动指令的全长。User:(可选参数)选用的用户坐标系,取当不使用此参数时,默认Dec与Acc值一致。最小生效值20%1、如果后一条为运动指令,不管该条运动指令是否有NWait,连续运动末尾带有NWait示例 示例 Movj MovjMovj MovjMovj MovjMovj Movj MovjMovjMovj==In:输入信号,仅支持Value:输入信号值,ON或MovcP[1],V[30],Z[0],UntilIn[5]ONMovcP[2],V[30],Z[0],UntilIn[5]==Out(No,value,Type)…:(可选参数)Type:运动中输出信号的类型。不同类型运动能使用不同的TypeMovj/Movl/Movc/,范围Movj/Movl/Movc/Jump/JumpL使用D[n]和S[n]SLOn/SLOff/SLReset该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjSLVSMode三点确定一段圆弧,因此Movc指令必须是成对出现,中间不能间隔任何指令。Movc前的上一条指令必须是运动指令(Movj、Movl、Movc、Jump、JumpL),否则则会报遵循要求,即使是注释指令也会影响结果,造成报警。一段圆弧运动中两条Movc指令,除了PMovc请勿与PE结合使用,会造成异常。典型如Movc对于程序首次出现的Movc指令,其前一条运动指令请勿与PE Movj MovjMovc MovcMovc Movc P[1],V[80] #快速运动至P[1] P[2],V[80],Z[3]; 运动过程分为三段:开始的上升段Movl,中间段Movj和下降段MovlJumpP,V,Z,Tool,[User],,[Acc],[Dec],[NWait],[Out(No,value,Type)…],LH,MH,RH,[P:偏移形式:OffsetJ(PPR)、OffsetT(PPR)、Offset(PPR)、Offset(PX,Y…)详细请参见第29PE说明”。详细内容请参见第131页“8.5.7Offset”。托盘取点形式:Pallet(PalletNo,Row,Colunm,Lay)、LPallet(PalletNo,Row,Colunm,Lay)第150页“8.5.20P=Pallet”。若当前指令为MovJ\MovL\Movc指令,当相对过渡等级m等于100为指令长度的一半,与Z[CP]效果一致。当相对过渡等级m大于100时,过渡长度将超过指令的一半。当ZR参数为200时,表示过渡长度为运动指令的全长。若当前指令为Jump\Jumpl指令且附加参数RH=0,当相对过渡等级m大于100渡长度将超过指令的一半,当ZR参数为200时,表示过渡长度为运动指令的全长。User:(可选参数)选用的用户坐标系,取当不使用此参数时,默认Dec与Acc值一致。最小生效值20%1、果后一条为运动指令,不管该条运动指令是否有NWait,连续运动末尾带有NWait示例 示例 Movj MovjMovj MovjMovj MovjMovj Movj MovjMovjMovjOut(No,value,Type)…:(可选参数)Type:运动中输出信号的类型。不同类型运动能使用不同的TypeMovj/Movl/Movc/,范围Movj/Movl/Movc/Jump/JumpL使用D[n]和S[n]LH:0.000~2000.000RH:0.000~2000.000。MH[Z],取值范围‑2000.000~2000.000MH[Z][PL]:Jump指令的Z轴高度限制及最高点位置比例PL。取值范围:20-默认值:50(水平中间点PL参数仅对当前Jump运动有效。需要对多个Jump令的附加参数进行设置。在效率或柔顺性要求不高的场合,建议使用默认值(50)进行设置。需要调整PL参数时,请先在低速下确认机器人路径是否与周围物体发生干涉。初次设置时,请按照默认值50进行试运行并根据Jump两侧的Z轴位移比例逐渐进行调整,以避免机器人轨迹与周围环境发生干涉。特别地,当机器人Jump指令起点与终点之间的水平距离较远时,机器人将可能在MH数指定的最大高度上进行水平位移运动。此时,PL移运动路径内。SLOn/SLOff/SLReset该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjSLVSModeJump指令仅用于Scara及Delta由于Scara机器人的基坐标系零点位于上方,因此MH在正常情况下,高度参数需满足MH>初始点高度+LH且MH>终止点高度+RH。这个条件的非正常设定,可能出现非“门”字形运动,可用于特殊场合。运动过程分为三段:开始上升段Movl,中间段Movl和最后下降段MovlP:偏移形式:OffsetJ(PPR)、OffsetT(PPR)、Offset(PPR)、Offset(PX,Y…)详细请参见第29PE说明”。详细内容请参见第131页“8.5.7Offset”。Colunm,Lay)第150页“8.5.20P=Pallet”。若当前指令为MovJ\MovL\Movc指令,当相对过渡等级m等于100为指令长度的一半,与Z[CP]效果一致。当相对过渡等级m大于100时,过渡长度将超过指令的一半。当ZR参数为200时,表示过渡长度为运动指令的全长。若当前指令为Jump\Jumpl指令且附加参数RH=0,当相对过渡等级m大于100渡长度将超过指令的一半,当ZR参数为200时,表示过渡长度为运动指令的全长。User:(可选参数)选用的用户坐标系,取当不使用此参数时,默认Dec与Acc值一致。最小生效值20%1、果后一条为运动指令,不管该条运动指令是否有NWait,JumpLP[1],V[30],Z[0],NWait;连续运动末尾带有NWait示例 示例 Movj MovjMovj MovjMovj MovjMovj Movj MovjMovjMovjOut(No,value,Type)…:(可选参数)Type:运动中输出信号的类型。不同类型运动能使用不同的TypeMovj/Movl/Movc/,范围Movj/Movl/Movc/Jump/JumpL使用D[n]和S[n]LH:0.000~2000.000RH:0.000~2000.000该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjSLVSModeJumpL指令仅用于Scara及Delta由于Scara机器人的基坐标系零点位于上方,因此MH在正常情况下,高度参数需满足MH>初始点高度+LH且MH>终止点高度+RH。这个条件的非正常设定,可能出现非“门”字形运动,可用于特殊场合。Home[Index],[V],[该参数为运动指令的参数,包括SLOn、SLOff和SLReset三个参数,SLOn需要进行自学习,SLOff代表该段运动不需要进行自学习,SLReset代表该段运动需要重新进行自学习;全局运动速度大于49%才可能自学习,小于49%若参数为SLOn,指令首次执行时,机器人会在运动到位后停止约1.5s,息并保存到学习数据文件中。正常情况下,运行一次即可自动学习到所需的相关信息,因此后面重复调用时机器人将不需要再停止进行学习;若使用SLOn参数自学习后发现振动抑制效果不能满足要求,可以使用SLReset相当于会强制每次执行该运动时都自学习,一般只在调试时使用,调试确认振动符合要求后,需要将SLReset改为SLOn或SLOff;带SLOn、SLReset段运动过渡参数和NWait参数将强制不生效;下面的程序中,执行完SLDataClearAll指令后,所有历史的自学习数据都将被清除,因此不论之前是否有进行自学习,运动到LP[1]和LP[2]点时,都会进行自学习,其中LP[2]点运动在for循环跳出前持续进行自学习。由于自学习参数为SLOff或缺省,运动LP[0]和LP[3]时,不会进行自学习。由于SLOn和SLReset参数的存在,运动到LP[1]和LP[2]点的两段运动都不会产生过渡效果;SLDataClearForMovjMovjMovjMovjSLVSMode #以30%最大速度回工作原点2(即第三个工作原点

用于ScaraArmChange1ArmChange的过渡为示例:ArmChange当Armchange指令前面的运动指令不带Nwait时,ArmChange指令是不预编译的,这也意味着这种情况下ArmChang5行。如果想要实现Armchange指令的预编译,可以在其前面的运行指令增加Nwait而实现Armchange的过渡。入下图所示程序,会预编译到第8行。 Set格式:SetOut,value;Out:数字输出信号Value:数字信号的值只能为Set #设置Out[1]输出Set格式:SetOG,BValue;GroupOG[0],0,1,2,3,4,5,6,7;Set #设置OG[0]输出00000111,即Out[0]~Out[7]分别为11100000Set

格式:SetDA,Value;DA:模拟量输出信号,DA[0]~Value:mA;若该信号为电压,默认单位Set #若DA[1]配置为电流类型,则此指令为输出1.2mAGet格式:GetIn,Var;Var:变量,保存读取的结果。0为OFF,1为GetSwitchCasePrint“In[7]isOFF”;CasePrint“In[7]isON”;Print“Error”;Get格式:GetOut,Var;Get

Var:变量,用于保存读取的结果。0为OFF,1为GetSwitchCaseCasePrint“Error”;格式:GetIG,Va;GroupIG[1],0,1,2,3,4,5,6,7;#先定义IG组 #读取IG[1]的信号;Get格式:GetOG[***],Var;Get

OG[1],B[1];#读取OG[1]#若信号Out[15]~Out[8]依次为OFF、OFF、OFF、OFF、OFF、ON、ON、ON,则格式:GetAD,Var;AD:模拟量输入信号 #获取AD[1]WaitT[时间];Time:时间值,double型数据,范围0‑65535.单位:秒Time=0时表示只判断一Wait,T[时间],GotoL[***];在的行Time:时间值,double型数据,范围0‑65535.单位:秒Time=0时表示只判断一次

WaitB[2]>5,T[2],GotoL[1];配置输入、输出组信号。一个组信号,最多包含8个信号,使用Group指令后,可定义组IOGOG使用必须先使用Group指令定义后才能使用GOG组,一旦执行后,只有控制器重新上电GOGGGOG数组时将会报错。GroupOG,n0,n1,n2…,n7;GroupIG,n0,n1,n2…,n7;InvertOut:输出信号 EndValue:(1‑100)。该指令对Movj、Movl、Movc、Jump、JumpL、ArmChange、Home影响上述运动中的加加速度。未使用SetAccRampSetAccRamp的作用域为整个系统,初始化条件请参见第15页“1.5设置Scara机器人的J4轴或标准6关节机器人的J6SlewModenMode:旋转优化方式,有0、1、2、3四种模式。(对于标准6关节机器人,用J6面的J4)SlewMode3;#采取模式3优化MovjP[1],V[30],Z[0],Tool[1];MovjSlewMode0;VelsetRate[value]:用来设置全局速度百分比格式1:Velset格式2:Velset格式3:Velset取消格式2“Velsetvalue”的速度设置。让运动指令中的速度设置继续生效。VelSetvalue很特殊,不受程序逻辑的影响,它是一种☑定义处理方式。也就是说,一方MovjP[0],V[70], #实际速度为MovjP[1],V[70],Z[3] #实际速度为VelsetMovjP[2],V[70],Z[3] #实际速度为 MovjP[3],V[70],Z[3] #实际速度为Velset SwitchCasePrint“Stateisstop”;CasePrint“Stateisrun”;CasePrint“Stateisstep”;ToolNo:UserNo:用户号,整型数值,范围SetFlyModeMotionType:CP,且只在运动类型为Movl、Movc、jumpl中有效。渡应力约束。若需要调整过渡应力,请使用第72页“5.9SetFlyPress”过渡应力设置指设定运动类型为CP时,该指令对Movl、Movc、JumpL间的过渡模式。未使用SetFlyModeSetFlyMode的作用域为整个系统,在系统中使用SetFlyMode第15页“1.5变量及指令的作用域”。OrientPress:姿态过渡应力。整型数据,范围(50‑200),默认值该指令对CP运动指令(Movl、Movc、Jumpl)的固定路径过渡段(FLY_FIX)会影响固定路径过渡段的运动速度。未使用SetFlyPress指令进行过渡应力设置时,系统默认按100%位置过渡应力和姿态过渡应力进行过渡。统过渡应力会被更新,初始化条件请参见第15页“1.5。动态设置工具坐标系参数,可采用直接法或三点法TCP,如下格式1和格式2。一经设置后,在本程序中工具坐标系值会立即变更,直到使用SetToolParm(ToolNo,OFF)更,恢复原值。格式1:SetToolParm(ToolNo,PR);格式2:SetToolParm说明:利用三点法TCP计算工具坐标系并设置。(可参见第24页“3.1Movj”中工具坐标的格式3:SetToolParmToolNo:工具号,值范围若使用格式2,P[i],P[j],P[k]完后,利用SetToolParm,OFF)可还原。SetToolParm还原成工程文件中初始化的值。后,在本程序中用户坐标系值会立即变更,直到使用SetUserParm(UserNo,OFF)关闭变格式1:SetUserParm(UserNo,PR);PR:格式2:SetUserParm说明:利用三点法计算用户坐标系并设置。(可参见第24页“3.1Movj”中用户坐标的三UserNo:用户号,值范围P[i],P[j],P[k]:格式3:SetUserParm(用户号格式4:SetUserParmUserNo:用户号,值范围若用到P[i],P[j],P[k],使用完后,利用SetUserParm(ToolNo,OFF)SetUserParm原成工程文件中初始化的值。用OffSetUserParm(UserNo,OFF)关闭变更,恢复原值。格式1:OffSetUserParm说明:对用户坐标系平移,平移量存于PR/LPR格式2:OffSetUserParmOFF:使用完后,利用OffSetUserParm,OFF)可还原。清除对象的值。这个对象可以是数值变量、平移变量、工具坐标系、用户坐标系、手持工件负载、Out个变量。格式1:Clear表示清除Out变量,Out[0]~Out清除B/LB清除R/LR清除D/LD清除PR/LPRNum:清除的数量。从Object格式2:Clear清除所有变量。包括上述所有的Tool、User、Obj、B、R、D、PR清除报警以及清除所有已经打开的端口数据,但不包括清除Fin、Out。Tool/User/Obj0,在程序Out:清除是指将Out信号置为OFFB/R/D:将值置0在运行中报警,会使得主任务和非静态停止,这时主任务或非静态任务中的ClearAlarm指Clear

OFF(默认)ON:OFF关闭过渡等待(系统默认ON当运动指令的过渡长度+S执行后续非运动指令。特别地,若当前运动指令为Jump或JumpL指令且具有竖直下降段(RH≠0)时,机器人最早将在竖直下降开始后执行后续非运动指令。B[1]=1;

B[1]=B[1]=B[1]=B[1]=

MovJ示例MovJP[1],V[100],Z[3]MovJSet示例MovJP[1],V[100],Z[3]MovJ机器人在到达P[0]至P[1]的50%位移后,执行SetOut[4],On;经过P[1]点时产生过Set

MovJP[2],V[100],Z[0]过渡不等待功能仅支持在自由过渡模式(默认)下使用。用户通过SetFlyMode指令将指令过渡模式切换为固定路径过渡模式时,CP运动指令(Movl、Movc、Jumpl)指令将需要等待机器人减速停止后执行。(过渡模式说明及相关设置请参考SetFlyMode指令)。若当前指令为Jump/JumpL指令,且带有竖直下降段(RH≠0)时,机器人将不早于竖本功能对后续非运动指令执行时序的控制作用仅限于当前运动指令没有启用NWait参数时的情况。若当前运动附带NWait参数,即使在SetFlyWait(ON)状态下,机器人也将可能在运动开始前执行后续非运动指令。(NWait数列表)。取决于机器人的计算负荷,后续指令的执行时间可能存在一定波动(典型值为50ms)特别地,当机器人从暂停状态继续运动后,由于最大容许过渡区域发生改变,视指令给定的过渡区域大小,后续非运动指令的触发位置将可能发生变化(不早于原触发点)。因MovjMovj运动指令,SetOut[5],On;

0‑Normal(默认模式1‑MidAccuracy(中等精度模式2‑HighAccuracy(高精度模式连续运动和带有非运动指令的运动均采用精定位,节拍时间与MidAccuracy(模式)一致,与MidAccuracy(中等精度模式)相比,该模式能使轨迹精度提高30%上,适用于具有较高轨迹精度要求的高速喷印等应用场合。该模式可能会导致电流增大。此外,低速下使用该模式的效果不明显。该模式为21版本引入的新模式。3‑LowSpeedHighAccuracy(低速高精度模式MovlMovjP[0],V[100],Z[0],Tool[1];DoubleGetTorque(intD[6]GetTorque(1);RapidMove(MotionType,MotionType=CP,Enable=ON时:MovL/MovC/JumpL等CP指令开启最优规划MotionType=CP,Enable=OFF时:MovL/MovC/JumpL等CP指令关闭最优规划MotionType=PTP,Enable=ON时:MovJ/Jump等PTP指令开启最优规划MotionType=PTP,Enable=OFF时:MovJ/Jump等PTP指令关闭最优规划MotionType=ALL,Enable=ON时:所有运动指令开启最优规划MotionType=ALL,Enable=OFF时:所有运动指令关闭最优规划当前阶段仅支持PTP运动,CPRapidMove(*,ON)和RapidMove(*,OFF)之间的运动指令开启最优轨迹MovjP[0],V[30],MovjP[1],V[30],Z[5]RapidMove(PTP,MovjP[2],V[30],Z[5],Tool[1];RapidMove(PTP,OFF);MovjP[3],V[30],Z[0] SetAcc(OFF);accValue:1‑120。执行SetAcc后MovedecValue:1‑120。执行SetAccOFF:1SetAcc(accValue,decValue)的加速度设置。运动指令使用自身的acc参数MovjP[0],V[30],Z[0],Tool[1];SetAcc(100,100);MovjP[1],V[30],Z[5],Tool[1];SetAcc(OFF)MovjP[3],V[30],Z[0],Tool[1],Acc[50];SLVSModemodePara:参数包括HighLevel、MidLevel、LowLevel、OffHighLevel、MidLevel、LowLevel振动抑制效果的等级不一样,分别为高、中、低三个级别,Off代表关闭振动抑制功能;LowLevel,运动执行时间上HighLevelMidLevel下面的程序中,执行完SLVSModeMidLevel指令后,自学习振动抑制模式将被设置成中等ForMovjDelayMovjDelaySLVSModeSLDataClear动到自学习效果不好的位置并调用SLDataClearCurrent清除当前位置的学习数据,然 SLDataClearForMovjDelayMovjDelaySLVSMode #Content:#ProgramismadedatL用于设置程序标签,常与跳转指令Goto GotolableNo:Movj #设置标签MovlMovlGoto #跳转至标签程序延时,时间由TDelayDelay #延时5Include“M”; R[1]=aa+bb;的程序名”include“ModelB.pro”;#如果需要调用ModelB.pro中的函数,则需要包含该模块FuncfunAdd(intaa,intbb)R[1]=aa+R[1]=aa‑bb;IfElseIfElseIf判断条件Condition语句StmtIfIN[1]==ONAndIN[2]==ONMovjP[1],V[50],Z[3],Tool[1]MovjMovjFor-ForB0=0,B0<5,Step[2]MovjMovj说明:两个Movj指令循环执行3Switch-Case-Default-根据Switch后变量,选择不同的Case,执行后面的Stmt1。若所有Case省(Default后)的语句。SwitchVarCaseCaseAToBCaseAToB代替CaseValue。CaseAToB代表从A到B两个整数范围SwitchCaseMovjCase2ToMovjMovjCaseMovjMovjWhileCondition判断条件Condition语句StmtMovjWhileMovjMovjP[1],V[50],Z[3],Tool[1]IncrLB[0];完全结束一个循环,跳出循环体,执行循环后面的语句。如跳出WhileFor循环、SwitchLB1=IfLB1>1MovjMovjIncr#执行2次“MovjP[0]、MovjP[1]”LB1=IfLB1==1MovjMovjIncr#执行4次“MovjP[0]、MovjP[1]”取值范围1‑100,默认值Corner过渡中间点(可选本指令在Jump、JumpL证,请结合实际情况进行调整。 位移百分比D个运动指令能够产生运动。此时,机器人会以第一个运动指令为参照,在机器人到达给定位移百分比时执行。请注意,当前后两个运动指令形成过渡时,一般将过渡的起点作为前一个运动指令的终点和后一个运动指令的起点。如下图,假设前后两个指令分别为指令1和指令2,当指令运动到70%时开始与指令2进行过渡。此时,可以认为指令1在过渡起点处结束运行,指令2开始运行。在进行Jump指令运动时,机器人按照当前点在竖直及水平方向上的投影进行近似位移计算。因此,当机器人的运动路径发生变化时相同位移对应的位置也将发生变化。若在Jump时机器人将可能在原等待结束点的斜上方结束等待。MovJP[1],V[100],Z[CP],IfIn[5]==运动到30%后,判断In[5]==On,执行SetOut[4],On运动到80%后执行SetOut[5],On经过P[1]点时保持过渡,理论过渡区域小于20%B0=B0+MovJ运动到50%后执行B0B01运动到80%后执行SetOut[5],On经过P[1]点时保持过渡,理论过渡区域小于20%MovJP[1],V[100],Z[0]MovJ运动到100%后执行SetOut[4],OnSet运动到100%且编码器达到到位精度范围并停留设定时间后执行SetMovJSendPort[1],”TA”; 利用该指令启动主任务或指令型PLCXqtIndex,filepathXqt3,“ABC.pro”Index:任务号。当前仅可为3ResumeIndex:任务号,当前仅可为3ResumeIndex:任务号。当前仅可为3注意:1.静态任务中的pause BOOL变量名[元素个数][元素个数]={{元素1,元素2…},{元素1,元素BOOL1,元素2…},{元素1,元素2…}},{{元素数组元素个数:最大支持三元数组,数组总长度不能超过Int Float Floatddd[2][2]{{1,2},{3,4}};IncrIncr #B[1]自增1,值变为DecrDecr #B1自减1,值变为

<Var>=Sin(<Exp>返回值类型:double<Var>:可以为数值变量,如果是非double

<Var>=Cos(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非double

<Var>=Tan(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Tan

<Var>=Asin(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非double

<Var>=Acos(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非double

<Var>=Atan(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Atan

<Var>=Sqrt(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Sqrt(9);

<Var>=Pow(<Exp_x>,<Exp_x>:<Exp_y>:返回值类型:double<Var>:可以为数值变量,如果是非double<Var>=Abs(<Exp>

<Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Abs(‑2);

<Var>=Max(<Exp_x>,<Exp_x>、<Exp_y>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Max(B[1],R[1]);

<Var>=Min(<Exp_x>,<Exp_x>、<Exp_y>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=Min(B[1],R[1]);

<Var>=AngleToRad(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=AngleToRad

<Var>=RadToAngle(<Exp><Exp>:返回值类型:double<Var>:可以为数值变量,如果是非doubleD[1]=RadToAngle

取字符串左边几个字符,如下格式所示,截取左边nStrDest=Left(StrSource,

取字符串的右边几个字符,如下格式所示,截取右边n

Str2GetAt(Str1, #取Str1序号为3的字符,结果为Str2

Index=StrFindEnd(StrSourceLB1=StrFindEnd(“abcaba”,”a”);

String StrSource:

String

StrSource: #结果LB1

Index= #结果LR1

StrSource:Str1=“Str1=

StrSource:Str1=“abcStr1TrimRight(Str1);#结果为Str1“abc”

value=Strcmp(Str1,...SPrintf(StrValue,format,格式化后总长度。如果数据的长度小于width,则左端补以空格,若大于width,则按

dx(X)十六进制整数sargument:(可选参数)变量列表,可以是任何类型的数据。根据Format会期望一系列附加参数,每个参数包含一个值,用于替换格式字符串中的格式说明符。String#结果为

StrSource:注意事项:CapsStr2=Caps

StrSource:注意事项:LowCase R[1]= ##Str4=将double

m参数m≤l参数m>整数位数,则在左侧以空格补齐位数。参数n≤

Var=StrSource:字符串开头0b”等,否则转换出来的值将会是不正确的16进制数,最多支持64bit数据也就是8位16Str1=“a12”;Str2=“12a3”;Str3=“1234”Str4=“0x0A”;R[1]=StrToR(Str1); #R[1]=0R[2]=StrToR(Str2); #R[2]=12R[3]=StrToR(Str3); #R[3]=1234R[4]=StrToR(Str4); #R[4]=10R[5]=StrToR(Str5); #R[5]=65535R[6]=StrToR(Str6); #R[6]=172Var=StrSource:字符串开头0b”等,否则转换出来的值将会是不正确的16进制数,最多支持64bit数据也就是8位16Str2=”0x0A”LD[1]=StrToD(Str1); #LD[1]=123.456LD[2]=StrToD(Str2); #LD[2]=10

注意:前面6个人坐标值转换后保留小数点后3#Str[1]结果为10.000,0.000,0.000,0.000,0.000,0.000;1,0,0,0;

Var:Byte/B/LB类型的变量,如果输入的是非Byte类型的变量,将先强制转换成Byte类型StringNewStr #结果为

定义字符串变量StrSource

将存储在字符串中的数据转成16GetPort接收数据存储字符串StrSource!:qj4调用StrToHex转换存储StrDest213A716A34

RetNum=StrSource:使用时应保证不超过B/LBRetNum:Stringstr1=LR[1]=GetStrAscii(str1,3,LB[1]);#LB[1]、LB[2]、LB[3]分别为97、98、

num=StrGetData(StrSource,Separator,num:使用P\PR时,只分割出的第一个字符串,按P\PR格式存储。当分割后的形式不符合P\PR型时,将为空,同时分割个数为0。

Str2=分割的第一个字符串”1,2,3,4,5,6;1,1,1,0;4,2,1;”存储到P[1]中,B[0]=1,从视觉发送的字符串StrSource中,提取数据到位置变量P格式1:CVDataToPose(StrSource,P,PVarMemset:用于初始化传出的P说明:StrSource提取的数据只包含XY或XYA,放于P中对应位置;P中剩余的值(数、工具号等),由PVarMemset对应填充。P[0]R[0]=格式2:CVDataToPose(StrSource,P,PVarMemset:用于初始化传出的P从StrSource提取的数据只包含XY或XYA,放于P中对应位置;P中剩余的值(数、工具号等),由PVarMemset对应填充。LP[0]=PrintR[0];PrintP[1];PrintP[2];PrintD[0];PrintCnvrt(FromP,ToP,type);Type:坐标类型,决定将FromPCnvrt(P[1],P[2], #将P[1]转换到关节坐标系下,赋值给

格式2:GetCurPoint(CoordType,Index,P);CoordType:只能取1或若最后一个参数为P时,数据存储到P变量中,此时下标号0‑5GetCurPoint(1,0,P[1]);#取当前点在关节坐标系下值,赋值给P[1]X,Y,Z,A,B,C)(ArmType[0],ArmType[1],ArmType[2],ArmType[3]):机型设置不同的机器人臂参数P[3]=PR[***]:数,Tool、User参数对OffsetJMovjOffsetJ(P[1],PR[1]),V[30],MovjMovjOffsetJ(P[1],J1[10],J2[20]),V[30],以上3PR[***]:若与运动指令一起使用,形如MovJOffsetT(P,PR)……,则运动指令中必带有Tool参MovjOffsetT(P[1],PR[1]),V[30],MovjMovjOffsetT(P[1],X[10]),V[30],表示在P[1]的基础上,工具末端点在工具1坐标系下平移PR[***]:PR为移动和旋转(X,Y,Z,A,B,C),平移顺序对于P=Offset(P,PR),MovjCnvrt(P[1],P[1],Tool[1]);##将P[1]MovjCnvrt(P[1],P[1],User[1]);##将P[1]转换到User1Movj针对于目标点以及所平移的坐标系,运动指令中TOOLUSER目标点表示TcpMovjOffset(P[1],PR1),V[30],Z[0],Tool[1];MovjOffset(P[1],PR1),V[30],Z[0],Tool[2];当Mov不带User平移。3.更换用户坐标系必须满足条件“P的坐标系号为4”,参考点由原用户坐标系下的点切换至指令User坐标系下的点,然后在User坐标系方向上平移。否则表示为直接在指令中坐标系下平移。PR:PR/LPR格式2:PRMsft(FromP

格式1:计算从FromP到ToP的平移变量。平移变量是以P[1]格式2:计算从FromP到ToP的平移变量。平移变量是以P[1]当前位姿衡量。P[1]=(0,0,0,0,90,0),(0,0,0,1)(1,0,0);P[2]=PR[1]=Msft(P[1],P[2]);P[1]=P[2]=TCPP[1]=P[2]=(30,TCP典型使用形式:Msft指令带有TcpP[1]=P[2]=P[2]SCARA机器人中ArmType[0‑2]不一样时,不允许计算平移变量)Z:基坐标系下的ZMovjP[1],V[30],Z[0],Tool[1];MovlMovlB1=2;IfMovlP[2],V[30],Z[0],Tool[1];#有偏移IfB1>1GotoGotoL[2];P变量坐标系序号为7时,不开启平移,(码垛机器人中不包含此指令)MovToPut、DestP=DestP=MovjMovjDestP=DestP=MovjMovjDestP=DestP=PR),P[1](390,‑330,329,1,‑8,‑179;0,0,0,1;2,1,0);#坐标系号为1PR1=(10,0,0,0,0,0);MovjP[1](390,‑330,329,1,‑8,‑179;0,0,0,1;2,1,0);#坐标系号为1MovjP[1](390,‑330,329,1,‑8,‑179;0,0,0,1;2,1,0)Cnvrt(P[1],P[1],Tool[1]);##将P[1]MovjP[1](390,‑330,329,1,‑8,‑179;0,0,0,1;2,1,0)Cnvrt(P[1],P[1],User[1]);##将P[1]转换到User1MovjPR格式2:PR[3]PR[1]PR[3]=PR[1]–

格式1:PR格式2:PRPR:PR/LPRPR[1]= R[1]=LPR[1](LB[1],LR[1],LD[1],B[1],R[1],D[1])GetAPointFromFile(PtFile,Index,说明:参考LoadPointFromFile如果程序中没有位置变量被预先定义,使用指令“GetAPointFromFile”WriteAPointToFile(PtFile,Index,WriteAPointToFile(“eer.pt”,0,WriteAPointToFile(“eer.pt”,1,P[1]);SavePointFile(“eer.pt”);LPalletLPalletNo,P[i],P[j],P[k],nRow,LPalletLPalletNo,P[i],P[j],P[k],P[m],nRow,P[i],P[j],P[k],P[m]:定义托盘的四个点LayHeight:层高,取值范围为<0~2000>,单位PalletLPalletNo,P[i],P[j],P[k],nRow,PalletPalletPalletNo,P[i],P[j],P[k],P[m],nRow,P[i],P[j],P[k],P[m]:定义托盘的四个点LayHeight:层高,取值范围为<0~2000>,单位Pallet2,P[1],P[2],P[3],格式1:P=Pallet(PalletNo,Row,Column,Lay);P:格式2:P=LPallet(PalletNo,Row,Column,P: 格式1:OpenSocket(IP,SvrPort,ClientPort);;1024‑65535表示指定客户端端口号的Socket连接。B:(可选项)只允许B/LB变量,返回值(打开成功返回1,否则返回0)OpenSocketOpenSocket一旦启动,端口会一直打开;使用close或手动打开其它程序时自动关设备主动断开等方式断开通讯后,等待一段时间后(win7系统:3~5s,win10系统:1~2min),再用open指令建立新的连接。4444、5555、6666、7777、8888、9999、1217、8080、11740、4003HTTPSMTP25,DNS53ModbusTCPcodesysAPIWhileOpen格式1:OpenCom(Port,Baudrate);格式2:OpenCom(Port,Baudrate,B);B:(可选项)只允许B/LB变量,返回值(打开成功返回1,否则返回说明:OpenCom一旦启动,端口会一直打开;除非使用close关闭。方式二:(利用SecureCRT终端软件对控制器配置b、然后在输入开启命令:set_serial1循环开闭串口时,OpenCom指令后请增加4~5sWhileOpenCom(1,WhileOpenCom(1,CloseClose范围:2‑51024‑65535;;1024‑65535表示指定客户端端口号的Socket连接。CloseSocket用于关闭打开的以太网端口。可用于2种情形:CloseCloseCloseCom,CloseCom指令后请增加4~5sCloseSend格式1:SendPort[Port],String;范围:1‑51024‑65535;;1024‑65535表示指定客户端端口号的Socket连接;格式2:SendString:表示以字符串的方式发送数据。通过SecureCRT终端软件连接控制器后,输入账户:root,密码#直接发送字符串Str[1]=SendPort[1025],Str[1],String;Stringss=StringStr1;SendGet范围:1‑51024‑65535。2‑5表示第1‑4个Socket连接,此时客户端端口号不需要指定;1024‑65535通过SecureCRT终端软件连接控制器后,输入账户:root,密码下一行指令(不执该句的GotoL[Index]);若未接收到数据,则执行该句的GotoL

范围:1‑51024‑65535;;1024‑65535表示指定客户端端口号的Socket连接;获取机器人指定SocketPortNo:客户端端口号,范围:1‑5;1024‑65535表示指定客户端端口号的Socket连接;当使用串口通信时,此PortNo为串口号,控制器只有一个串口,串口号为1

外部设备的置】‑【通讯服务管理】建立的通讯,或指令中通过opensocket建立的通讯);;1024‑65535表示指定客户端端口号的Socket连接;(该参数也可使用0代表String,1代表Binary,2代表如需切换接收数据类型,推荐在open指令前使用SetSocketRecvTypeSetSocketRecvType(1025,Hex);GetPort[1025],T[1],GotoL[2]; AlarmIndex:自定义报警序号AlarmPrintObject:需要打印的变量或字符串(B\R\D\P\PR\LB\LR\LD\字符串变量或直接字符串)打印的内容不超过99Print从PLC获取Byte

VarIndex:PLCByte类型变量的编号读取到的PLCByte变量的值,返回值类型

VarIndex:PLCInt类型变量的编号

从PLC获取DIntVarIndex:PLCDInt类型变量的编号

从PLC获取LRealVarIndex:PLCLReal类型变量的编号读取到的PLCLReal类型变量的值,返回值类型TimerIndex:计时器编号TimeOut(TimerIndex,MovjMovj从ModBus从站获取线圈值并保存在ByteGetModBusCoil(StartAddr,CoilNum,Var:ByteB/LB类型变量,用于存储读取到的线圈值,允许非Byte的类型,如果是非Byte读取一个或多个ModBus中。Var变量是BYTE类型,占用8bit,可容纳最多8

将Byte类型值设置ModBusSetModBusCoil(StartAddr,CoilNum,ByteValue:Byte类型的值(0‑255),根据该变量的值设置ModBusBYTE类型,占用8bit,能设置最多8+1”线圈地址的有效范围(2048~4095)以及(6144~8191),任务:设置线圈地址2048、2049、2050中的值依次为1、0、1编程:SetModBusCoil(2048,3,B[1]);StartAddr:寄存器的起始地址(0~65535)VarName:变量名。读取到的数据存储在以该变量为首的数组中(仅限于BRDLBLRLD数DataType:由于数据需要存储在数组中,因此VarNum+VarNameGetModBusReg(16384,R[1],1,2);##从寄存器起始地址16384上读取2个ShortGetModBusReg(16384,R[1],2,3);##从寄存器起始地址16384上读取3个int类型数据(3*2GetModBusReg(16384,R[1],4,3);##从寄存器起始地址16384上读取3个double##从寄存器起始地址把Value强制转换成DataType对应的数据类型,设置VarNum个DataType始地址为StartAddr长度为VarNum*DataType(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论