opencnc46xx系列开发手册_第1页
opencnc46xx系列开发手册_第2页
opencnc46xx系列开发手册_第3页
opencnc46xx系列开发手册_第4页
opencnc46xx系列开发手册_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

版本升级说-3上版本总页编写工程排版工程校对日版本/页结确版本升级说-3上版本总页编写工程排版工程校对日版本/页结确-4目录资源介绍 .-8存器9运行控制位寄存器..............................................................................................................-10-运行控制字寄存器13-CNC参数管理寄存器30PMC目录资源介绍 .-8存器9运行控制位寄存器..............................................................................................................-10-运行控制字寄存器13-CNC参数管理寄存器30PMC轴控参数寄存器31PMC开发库函数详解361.1.通讯管理函数类..................................................................................................................-361.1.1.COMM_LibVer()...........................................................................................................................-37 .-37 .-38 .-381.1.5.COMM_CloseNetConn( .-39 .-40 .-40 .-41 .-411.1.10.COMM_AsciiToByte( .-42 .-421.1.12.COMM_Recv( .-431.2.加工管理函数 .-431.2.1.WORK_SelectComm()..................................................................................................................-441.2.2.WORK_GetCommInfo( .-44 .-45 .-45 .-46 .-47 .-48 .-49 .-491.3.参数管理函数 .-511.3.1.PARA_SelectComm()....................................................................................................................-53-51.3.2.PARA_GetCommInfo( .-541.3.3.PARA_GetParaVerify( .-541.3.4.PARA_GetParaInfo( .-1.3.2.PARA_GetCommInfo( .-541.3.3.PARA_GetParaVerify( .-541.3.4.PARA_GetParaInfo( .-541.3.5.PARA_ReadParaTab( .-551.3.6.PARA_TabToSort( .-55 .-551.3.8.PARA_ReadValue( .-571.3.9.PARA_WriteValue( .-571.3.10.PARA_ReadMultValue( .-581.4.文件管理函数 .-591.4.1.FS_SelectComm()..........................................................................................................................-61 .-62 .-621.4.4.FS_FOpen( .-631.4.5.FS_FRead( .-63 .-641.4.7.FS_FClose( .-64 .-641.4.9.FS_FSeek( .-66 .-66 .-671.4.12.FS_RmDir( .-67 .-68 .-682.PMC开发库使用导 .-69-2.2Windows下动态链接库的调用69-工业触摸屏编程 .-711.步科的工业触摸屏实 .-71-1.2.741.3.75-6件设 .-76-件设 .-76-7开放资源介 资源表采用统一编址方开放资源介 资源表采用统一编址方式进行资源调用和传G32宏地址指向的是其他类型的变则会将其他变量的值转换进行处理,在取值时要注意这32位浮点值给到G代PLC&ModBus地址是用于内部PLC或者外部设备通过Modbus进行访问时的地址符,PLC或外部设备均通过该地址访问NC所有资源该地址默认指向的是16位整型寄存器,如果指向的是一个浮点或32位的整型数据,则会占用两个连续的地址号来拼凑成32例如地址R5042代表的是进给速度,但进给速度是32位整型的数据,那么读回来则占用了R5042,R5043两个16位地址来共同表达32位整型;R504216位数据,504316如果直接读R5043,则会因为数据边界不对齐而读取失败,或返回空系统的变量类型和访问权限的定*08161616323232位浮点数据(32-bitIEEE-754)具备读权限具备可读可写权限(ReadorWrite)-8寄存注:CNC特殊操作寄存器的访问同样遵循Modbus的协议格式,在访问数据时,需要顺算的高级语言编程使用,对于PLC与触摸屏的访问可能会存在一定困难。-9PLC地*特殊文件访问命令寄存*特殊文件访问数据寄存*特殊文件访问数据长度寄存*特殊文件访问数据位置寄存*特殊文件访问错误及状态寄存505寄存注:CNC特殊操作寄存器的访问同样遵循Modbus的协议格式,在访问数据时,需要顺算的高级语言编程使用,对于PLC与触摸屏的访问可能会存在一定困难。-9PLC地*特殊文件访问命令寄存*特殊文件访问数据寄存*特殊文件访问数据长度寄存*特殊文件访问数据位置寄存*特殊文件访问错误及状态寄存505~保*特殊参数管理命令寄存*特殊参数管理数据寄存*特殊参数管理数据长度寄存*特殊参数管理数据位置寄存*特殊参数管理错误及状态寄存525~保*特殊多寄存器访问命令寄存*特殊多寄存器访问数据寄存*特殊多寄存器访问数据长度寄存*特殊多寄存器访问数据位置寄存*特殊多寄存器访问错误及状态寄存545~保CNC运行控制位寄存CNC运行控制位寄存器CNC运行控制位寄存CNC运行控制位寄存器用于显示当前控制器的IO状态及对可控制的输出端口进行控-10PLC地R0~-1124:手轮25:手轮-1124:手轮25:手轮轴选26:手轮27:手轮轴选28:手轮29:手轮轴选30:手轮31:手轮轴选32:手轮33:手轮34:伺服X报35:伺服Y报36:伺服Z报37:伺服A报其它位地址保留未R500~-12540:RUN灯(只针541:ALARM-12540:RUN灯(只针541:ALARM灯(只针对CNC8860)位地址对应的面板LED输出端口其它位地址保留保字寄存G代码的执行状态同时寄存器一-字寄存G代码的执行状态同时寄存器一-13PLC地访问权对应IO0~367,例01…7对应IO0~367,每个地址16IO06…92对应IO0~367,例…对应IO0~367,每个地址16IO…对应LED输出0~175,例-14…LED0~175,每个地…128节当前报警提示信息内容字符UTF8编码格式-14…LED0~175,每个地…128节当前报警提示信息内容字符UTF8编码格式128节警状态第0位128节警状态第1位128节警状态第2位128节警状态第3位128节警状态第4位128节警状态第5位128节警状态第6位128节警状态第7位128节警状态第8位128字自定义报警信息9,对应外部-15数94128节自定义报警信息10,对应外部报警状态第10位8128节自定义报警信息11,对应外部报警状态第11位128节自定义报警信息12,对应外部报警状态第12位128节自定义报警信息13,对应外部报警状态第13位128节串行报警信息14,对应外部报警状态第14位128节警告位报警信息15,对应外部报警状态第15-15数94128节自定义报警信息10,对应外部报警状态第10位8128节自定义报警信息11,对应外部报警状态第11位128节自定义报警信息12,对应外部报警状态第12位128节自定义报警信息13,对应外部报警状态第13位128节串行报警信息14,对应外部报警状态第14位128节警告位报警信息15,对应外部报警状态第15位240节字符编码格式为UTF8的格128节G128节G128节G128节G128节G3528~保系统功能信号状态映器0:安全信1:气压信2:夹料信3:系统油4:对刀仪检-165:报警6:运行7:润滑输8:冷却输9:主轴正转输10:主轴11:系统12:主轴13:变-165:报警6:运行7:润滑输8:冷却输9:主轴正转输10:主轴11:系统12:主轴13:变频14:对刀仪吹气15:对刀仪限位系统功能信号状态映器0:外部急停1:外部启动2:外部暂停3:手轮4:手轮5:手轮6:手轮轴选7:手轮轴选8:手轮轴选9:手轮轴选10:手轮11:手轮12:手轮工件加工工件最大加工当前系统内部按系统外部按键响应(注当前系统控制模-170:录1:自2:手4:归插补倍快移倍主轴倍手动倍编程速实际速手动速主轴状-170:录1:自2:手4:归插补倍快移倍主轴倍手动倍编程速实际速手动速主轴状1:加载就2:正在加BIT7~BIT0加载进度,值范100加工文件程序16字节R:当前加工文件名所有加工程序存放在控制器固定目录下系统报警号(注字符编码为UTF8格式。T5:0:连1:单BT~I:保-18BTBT0:运行状0:停1:运2:暂3:单节暂-18BTBT0:运行状0:停1:运2:暂3:单节暂14产生的报警内容可读取对应自手轮轴0:没有选择1:X2:Y3:Z4:A忆执行条件(0-不符合,1-符;;BT(读写):决定BIT0控制否有效(0-无效,1-有效BT读写):BIT11断点执行的提示信息可以自行叙述打印,亦可读取地址2588寄存器组的内容进行打印显示加工模0:本地文件加工模式1:在线加工模式89W在线加工操作命读:剩余存储块数写:写任意值清空缓存据最大240字节。为数据长度;其余的为数据内即数据帧格式为序号+长度N+N个数240节当前代码运行位置(寄存器组的内容进行打印显示加工模0:本地文件加工模式1:在线加工模式89W在线加工操作命读:剩余存储块数写:写任意值清空缓存据最大240字节。为数据长度;其余的为数据内即数据帧格式为序号+长度N+N个数240节当前代码运行位置(只 加工使用归零标志及当前归零状态:高8态0归零动作结束,1表示正在执行归零动~保G码0组模态G码1组模态G码2组模态G码3组模态G码4组模态G码5组模态G码6组模态-19-20G码7组模态G码8组模态G码9组模态G码10组模态4011~保刀具半径补偿编号刀具长度补偿编号辅助功能M代当前程序编号O字段4116~保刀具功能号4121~保X轴-20G码7组模态G码8组模态G码9组模态G码10组模态4011~保刀具半径补偿编号刀具长度补偿编号辅助功能M代当前程序编号O字段4116~保刀具功能号4121~保X轴绝对Y轴绝对Z轴绝对坐A轴绝对B轴绝对C轴绝对5012~保X轴相对Y轴相对Z轴相对坐A轴相对B轴相对C轴相对5032~保X轴机械Y轴机械Z轴机械位A轴机械-218B轴机械0C轴机械保0X轴反馈2Y轴反馈Z轴反馈位A轴反馈B轴反馈C轴反馈5068~保X轴刀具位置补偿Y-218B轴机械0C轴机械保0X轴反馈2Y轴反馈Z轴反馈位A轴反馈B轴反馈C轴反馈5068~保X轴刀具位置补偿Y轴刀具位置补偿Z轴刀具位置补A轴刀具位置补偿5088~保X轴外部写正值:X轴正方向运行写负值:X轴负方向运行写零值:X轴立即停止Y轴外部写正值:Y轴正方向运行写负值:Y轴负方向运行写零值:Y轴立即停止Z轴外部手写负值:Z轴负方向运行写零值:Z轴立即停止A轴外部写正值:A轴正方向运行写负值:A轴负方向运行写零值:A轴立即停止B轴外部写正值:B轴正方向运-22写负值:B轴负方向运行写零值:B轴立即停止C轴外部写正值:C轴正方-22写负值:B轴负方向运行写零值:B轴立即停止C轴外部写正值:C轴正方向运行写负值:C轴负方向运行写零值:C轴立即停止6100~0~BT:000:目TI:文件0大小(单位:Byte)20000~BT:110:目TI:文件1大小(单位:Byte)20008~…BT:255区0:目1:文-23BIT30~BIT0文件255大(单位22040~22045:目录255/文255:当前目录路:进入选中目D盘根“\U当前路径下目录和文件总个所要删除的加工-23BIT30~BIT0文件255大(单位22040~22045:目录255/文255:当前目录路:进入选中目D盘根“\U当前路径下目录和文件总个所要删除的加工文件名所要复制的加工文件名所要粘贴的加工文件名进入编辑状态的G代码总当前编辑窗口起始行编当前编辑窗口结尾行编编辑窗口当前行编号编辑窗口操作命1:光标左2:光标右3:光标上4:光标下5:当前行回车6:向上翻7:向下翻8:删除当前9:保存编辑后的G代10:退格删G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容-24键值键值停止状态下有自动模停止状态下有手动模停止状态下有录入模停止状态下有手轮模停止状态下有归零模归零模式下有X轴归零归零模式下有Y轴归零归零模式下有Z归零模式下有A-24键值键值停止状态下有自动模停止状态下有手动模停止状态下有录入模停止状态下有手轮模停止状态下有归零模归零模式下有X轴归零归零模式下有Y轴归零归零模式下有Z归零模式下有A轴归零归零模式下有所有轴归零操主轴启动的情况下转速自减操主轴启动的情况下转速自加操自动模式下有倍率自减操自动模式下有倍率自加操手动模式下有X轴正向手动模式下有X轴负向G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容G代码编辑内容手动模式下有Y轴正向手动模式下有Y轴负向手动模式下有Z手动模式下有Z手动模式下有A轴正向手动模式下有A轴负向正反清润跳单暂启复-25系统报说无报警(系统默认值程序结没有指定手动模式下有Y轴正向手动模式下有Y轴负向手动模式下有Z手动模式下有Z手动模式下有A轴正向手动模式下有A轴负向正反清润跳单暂启复-25系统报说无报警(系统默认值程序结没有指定运动函没有G代码获取行代码换刀失刀具无G程序段重复G程序段程序号错G7x8x复合指令代码无法正常指定端口号错程序异常终止错M01-26不存在指定程序M98格式错调用运动执行失本段不需要补G程序段无效G程序重新运行,M99指令,此报警属于正常运动报警,-26不存在指定程序M98格式错调用运动执行失本段不需要补G程序段无效G程序重新运行,M99指令,此报警属于正常运动报警,用来刷新计运动异常报非法字注释符格式错误或者无对称注释GG代码补偿号或者值未定义G代码半径补偿错圆弧编程错非法指定平面 之外平M98调用错误,可能超过最主轴指定硬件轴号错M代码执行出主轴指定失运动重复请指定圆弧不存XYZABCDRFTSP-27指令错指令错令错令错指令错Q螺距值重复指定错系统发生警报异常退人为干预退G无指定G代码程序号表格存储-27指令错指令错令错令错指令错Q螺距值重复指定错系统发生警报异常退人为干预退G无指定G代码程序号表格存储宏功能调用错宏表达式书写异宏变量地址错非法变量跳转语句发生错宏循环语句配对错宏循环语句嵌套错宏循环语句嵌套调用过多,超出最多没有定义宏变量获取地址函宏定义信息输出,不报宏定义报警输常量引用错上一段轨迹i_gcode属性值下一段轨迹i_gcode属性值起始补偿点圆弧进结束补偿点圆弧退在补偿过程中上一段轨迹的起点位置和终点位置在补偿过程中下一段轨迹的起点位置和终点位置G0203R半径补偿过程中遇到不能切换的G代NURBS节点过NURBS参数错-28复合程式记忆程序段数过多溢出复合程式存在表达式错UWG未定义零-28复合程式记忆程序段数过多溢出复合程式存在表达式错UWG未定义零紧急停XYZA轴号重定义错主轴未归零错模具夹未锁紧错信号未被检测到重定气压不夹料信号无效报油压报主轴发生警变频器发生警放刀失抓刀失刀库门检测错卡销检测错松刀检测错放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀信号未被检测到重定气压不夹料信号无效报油压报主轴发生警变频器发生警放刀失抓刀失刀库门检测错卡销检测错松刀检测错放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失对刀仪限位报附加面板工作异预处理外部异常终止程序执自定义宏程序重复调用次数加工代码在运行中检测编程坐标值超软限位设定-29CNC参数寄存器用于存储当前CNC 进行访问,也可以被宏代码进行调用访PLC-30PLC地 对应#100~#199CNC参数寄存器用于存储当前CNC 进行访问,也可以被宏代码进行调用访PLC-30PLC地 对应#100~#199 保 对应#500~#999 保 综合参数 轴配置参 管理参 主轴参10000~ 端口配 保寄存~60299PMC60100~60199为一轴参数控制为二轴参数控制地址区。每个控制轴都能够选定寄存~60299PMC60100~60199为一轴参数控制为二轴参数控制地址区。每个控制轴都能够选定1~6轴中的任意CNC88604CNC5、6轴则可以用来进行PMC编程使用。-31地址(i为0轴号,0表示该轴无用。CNC8860控制器应设置为5,6轴号。9轴特性和脉冲模式设置(修BIT3:轴0旋转;1BIT2:脉冲方向方向输出正逻辑方向输出负逻辑BIT1:脉冲逻正逻辑脉冲负逻辑脉冲BIT0:脉冲方脉冲+脉冲脉冲+方向6轴硬件限位模式设正限位无效正限位有效负限位无效负限位有效-32低电平停止高电平停止00硬件原点信号无效-32低电平停止高电平停止00硬件原点信号无效硬件原点信号有效低电平有效高电平有效01硬件原点信号无效硬件原点信号有效低电平有效高电平有效4轴相关配0不停止 1停止BIT0:轴报警有效0低电平;1(伺服轴归零使能及方向配伺服Z相零点低电平有伺服Z相零点高电平有ZZ外部零点低电平有效外部零点高电平有效-33外部零点禁止外部零点使能正方向归零负方向归零轴硬件正限位输入端口轴硬件负限位输入端口0外部零点输入端口伺服轴报警输入端口伺服轴复位输出端口轴起始速-33外部零点禁止外部零点使能正方向归零负方向归零轴硬件正限位输入端口轴硬件负限位输入端口0外部零点输入端口伺服轴报警输入端口伺服轴复位输出端口轴起始速轴加速轴快移速轴手动速轴归零加速轴归零速轴归零减速速轴归零零点扫描速0-~轴零点脉冲偏移轴最大约束加速轴最大约束速-~轴正向软限位脉冲--~轴负向软限位脉冲轴ROUND设定值(作为旋转-34地址(i为-2147483648轴实际位置脉冲-2147483648轴逻辑位置脉-34地址(i为-2147483648轴实际位置脉冲-2147483648轴逻辑位置脉冲R轴当前速R轴当前状BIT0:轴0停止状 1运行状RBIT5:负向软限位报警0无效1有BIT4:正向软限位报警0无效1有BIT3:负向硬限位报警0无效1有BIT2:正向硬限位报警0无效1有BIT1:伺服报 0无效1有BIT0:轴未归零报 0无效1有认为1,此时若执行了除“归零”指令外的其它轴运动指令会产生“轴未归零报警。成功执行归零指令后,BIT0位会自动置为0,表示轴已经成功归零,BIT0:轴0已归 1未归-35轴控制命0x00:清除报警信息-35轴控制命0x00:清除报警信息0x01:立即停止0x02:减速停止0x07:轴归零操作WW-2147483648PC端高级语言编1.PMC数据类型声明如typedefcharPC端高级语言编1.PMC数据类型声明如typedefchartypedefshorttypedefinttypedeftypedefint//16//16//32//32//32//64//布尔型通讯管理函数//***************通讯端口配置//MODBUS传输端口数目暂定66个-012345//无效端//TCP//UDP网络接//***************串口通讯模式 //RTU //ASCII模-36讯管理函数//通讯无//通讯端口号//通讯设//执行失1.1.1.COMM_LibVer(示例voidmain(讯管理函数//通讯无//通讯端口号//通讯设//执行失1.1.1.COMM_LibVer(示例voidmain({FLOATfVer=//打印库版本printf("Libraryversion%.2f",}COMM_ParaInit(-37函数void_stdcall功能通讯参数初始化函数输入无输出无返回无注意函数FLOAT_stdcall功能通讯库版本,通过该函数可以获取当前库的版本,便于升级维输入无输出无返回库版本号,格式为注意无1.1.3.COMM_UartInit(示例voidmain({//打开串口0,波特率115200,8位数据位位停止位,无1.1.3.COMM_UartInit(示例voidmain({//打开串口0,波特率115200,8位数据位位停止位,无校验NOPARITY)=={printf(“打开串口成}}COMM_NetConnect(-38函数名INT8U_stdcallCOMM_NetConnect(INT8UNetPort,INT32SINT32UuiConIp,INT16U功能描进行TCP/UDP连接,并用设备号与IP地址进行对应的输入参 4TCP连接端口,5UDP 网络通讯对应的设备号,范围(0~255) 连接的服务端IP地址 连接的服务端通讯端口号(一般通讯固定 输出参无返回 正函数名INT8U_stdcallCOMM_UartInit(INT8UUartPort,INT32UUartBaud,DataBit,INT8UStopBit,INT8U功能描初始化打开串口,对串口进行通讯配输入参 串口数据位(5,6,7,8位四种方式) 串口停止位(1,2位两种方式) 串口校验位(无校验,奇校验,偶校验三种方式输出参无返回 正注意事无uiConIp=//UDP1IP:00,端口号:502if(COMM_NetConnectCOMM_UDP_PORT1uiConIp502uiConIp=//UDP1IP:00,端口号:502if(COMM_NetConnectCOMM_UDP_PORT1uiConIp502COMM_NO_ERR){printf(“连接成}}1.1.5.COMM_CloseNetConn(示例voidmain({//UDP1{printf(“连接关闭成}}1)==-39函数INT8U_stdcallCOMM_CloseNetConn(INT8UNetPort,INT32S功能关闭与对应设备的连接,只针对TCP/UDP连接的输入 4TCP连接端口,5UDP 网络通讯对应的设备号,范围(0~输出无返回 正注意1.1.6.COMM_ClosePort(示例voidmain({ // // // ////TCP1.1.6.COMM_ClosePort(示例voidmain({ // // // ////TCP}-40函数名BOOL_stdcallCOMM_SetTimesOut(INT8Uport,INT16Utimeouts,功能描设置相应端口的通讯超时时间和异常重发输入参 通讯端口 输出参无返回 正注意事无函数名功能描输入参 0~50,1,2,3为串口4TCP网络;5为UDP网络)输出参无返回 正注意事esOut(_stdcallCOMM_GetTimesOut(INT8Uport,INT16U*timeouts,应端口的通讯超时时间和异常重发通讯端口输出esOut(_stdcallCOMM_GetTimesOut(INT8Uport,INT16U*timeouts,应端口的通讯超时时间和异常重发通讯端口输出返回正注意无示例voidmain({INT8Urepeat_times;INT16Utimeouts;//设置COMM_UART_PORT0串口超时时间为1000ms,超时最多重发4//获取COMM_UART_PORT0串口设置的超时时间和最多重发COMM_GetTimesOut(COMM_UART_PORT0,&timeouts,//打印获取的超时时间和最多重发printf(“timeouts=%d,repeat_times=%d\n”,timeouts,}1.1.9.COMM_ByteToAscii(-41函数void_stdcallCOMM_ByteToAscii(INT8Udata,INT8U*ch,INT16U功能字节数据转ASCII输入 要转换的数输出 存放转换后的ASCII值的数 数组数据的位置(数据访问后会指向下一数据位置返回无注意无示例voidmain({INT8UINT8Uch[5];offset=COMM_ByteToAscii(0x12,ch,COMM_ByteToAscii(0x34, //将0x12示例voidmain({INT8UINT8Uch[5];offset=COMM_ByteToAscii(0x12,ch,COMM_ByteToAscii(0x34, //将0x12转换为字符’1’、’2’//添加结ch[4]=//打印结果:ch:1234,offset:printf(“ch:%s,offset:%d”,ch,offset=COMM_AsciiToByte(&data,ch,&offset);COMM_AsciiToByte(&data,ch,&offset);}COMM_Send(-42函数名INT16U_stdcallCOMM_Send(INT8UPort,INT8U*sbuff,INT16U功能描向指定串口发送数据函函数名void_stdcallCOMM_AsciiToByte(INT8U*data,INT8U*ch,功能描ASCII字符转字节数输入参 存放转换ASCII值为数据的 数组数据的位置(数据访问后会指向下一数据位置输出参 转换后的数返回无注意事无发送数据长发送的数据长注意该函数发送的数据直接通过相应串COMM_Recv发送数据长发送的数据长注意该函数发送的数据直接通过相应串COMM_Recv(1.2.//加工管理操作//无效命//复位命//写入不连续寄存器地址和相应长度//扩展型读写不连续寄存器地址和相#define#defineWORK_READDATAEXT#define//读多个不连续寄存器//写多个不连续寄存器//错误类型//操作无//无效的//读无效的数//命令长度错//读命令#define-43函数INT16U_stdcallCOMM_Recv(INT8UPort,INT8U*rbuff,INT16U功能串口读数据函输入 通讯端口 指定读取数据长输出 读取数据存储返回返回实际接收到的数据长注意该函数接收的数据直接来自相应串#define//写命令//数据长度超出最大缓存区//数据长度错//读数据//写数据#define//写命令//数据长度超出最大缓存区//数据长度错//读数据//写数据//空地址//设备错//通讯超时错WORK_SelectComm(-44函数名INT8U_stdcallWORK_GetCommInfo(INT8U*port,INT32SINT8U*mode,BOOL功能描针对加工部分的数据访问,获取当前通讯连接状输入参无输出参 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯返回 正函数名INT8U_stdcallWORK_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能描针对加工部分的数据访问,选择设置相应的通讯连输入参 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯输出参无返回 正注意事无INT8Umode;BOOL//选择COMM_UART_PORT0串口,站号为1,RTU通讯模式,通讯使能WORK_SelectComm(COMM_UART_PORT0,1,//INT8Umode;BOOL//选择COMM_UART_PORT0串口,站号为1,RTU通讯模式,通讯使能WORK_SelectComm(COMM_UART_PORT0,1,//获取加工类通讯printf(“port=%d,iDevNum=%d,mode=%d,bEnable=%d\n”,port,iDevNum,mode,}WORK_ReadInBit(WORK_ReadBit(-45函数INT8U_stdcallWORK_ReadBit(INT16UnAddr,INT8U*pBuff,功能读一个或多个连续位寄存器地址的状输入 位寄存器首地 要访问的位个函数INT8U_stdcallWORK_ReadInBit(INT16UnAddr,INT8U*pBuff,功能读一个或多个连续输入位寄存器地址的状输入 位寄存器首地 要访问的位个输出 存放读出的位状态返回 正注意无1.2.5.WORK_WriteBit(示例voidmain({intINT8Umemset(rSta,0,//读出1.2.5.WORK_WriteBit(示例voidmain({intINT8Umemset(rSta,0,//读出位地址为100开始的连10个只读输入点的if(WORK_ReadInBit(0,&rSta,10)!={}for(i=0;i<10;{printf(“%d, //打印输入状}-46函数名INT8U_stdcallWORK_WriteBit(INT16UnAddr,INT8U*pBuff,功能描写一个或多个连续位寄存器地址的状输入参 位寄存器首地 存放要写入的位状态 要访问的位个输出参无返回 正注意事无输出参 存放读出的位状态返回 正注意事无)==0)?1:{)==0)?1:{}memset(rSta,0,if(WORK_ReadBit(100,&rSta,10)!={}for(i=0;i<10;{printf(“%d,”,}//打印输出}1.2.6.WORK_ReadReg(-47函数INT8U_stdcallWORK_ReadReg(INT16UnAddr,INT8U*pBuff,功能读取一个或多个连续字寄存地址的数输入无输出无1.2.7.WORK_WriteReg(示例voidmain({inti;INT8Uerr;pos=//选择串口,站1.2.7.WORK_WriteReg(示例voidmain({inti;INT8Uerr;pos=//选择串口,站号为1,RTU通讯模式,通讯使能WORK_SelectComm(COMM_UART_PORT0,1,COMM_MODE_RTU,//例如X轴反馈位置的寄存器起始地址为5060,数据类型为32位有符号整errWORK_ReadReg(5060,(INT8U*)&pos, //读X轴反馈位if(err!={}pos=1000;errWORK_WriteReg(5060,INT8U*)&pos4);//X-48函数名INT8U_stdcallWORK_WriteReg(INT16UnAddr,INT8U*pBuff,功能描写入一个或多个连续字寄存地址的数输入参 字寄存器首地 存放要写入寄存器数据的 要写入的寄存器数据字节输出参无返回 正注意事无返回 正注意事无gisterpos=errWORK_ReadReg(5060,(INT8U*)&pos, //再次读X轴反馈位if(err!={gisterpos=errWORK_ReadReg(5060,(INT8U*)&pos, //再次读X轴反馈位if(err!={}printf(“pos2=%d\n”,}WORK_ReadDiscReg(-49函数INT8U_stdcallWORK_WriteDiscReg(constINT16U*pRegBuff,功能写入一个或多个不连续字寄存地址的数输入 存放不连续寄存地址及相应读取数据长度的 pRegBuff数组内容 存放要写入的不连续寄存器数据的输出无函数INT8U_stdcallWORK_ReadDiscReg(constINT16U*pRegBuff,功能读取一个或多个不连续字寄存地址的输入 存放不连续寄存地址及相应读取数据长度的 pRegBuff数组内容输出 存放读取的不连续寄存器数据的返回 正注意无示例voidmain({//选示例voidmain({//选择COMM_UART_PORT0串口,站号为1,RTU通讯模式,通讯使能WORK_SelectComm(COMM_UART_PORT0,1,COMM_MODE_RTU,//例如X,Z轴反馈位置寄存器起始地址分别为5060,5064其中X轴占用两个字地址空间,Z轴占用5064,5065两个字地址空nBuffNum=err=WORK_ReadDiscReg(pRegBuff,nBuffNum,pData);//读X,Z轴反馈位if(err!={}*(INT32S*)pData=*(INT32S*)(pData+4)=-50返回 正注意事无10002000gister}*(INT32S*)pData=*(INT32S*)(pData+4)=10002000gister}*(INT32S*)pData=*(INT32S*)(pData+4)=err=WORK_ReadDiscReg(pRegBuff,nBuffNum,pData);//再次读X,Z轴反馈位if(err!={}}1.3.//访问命令//无效命//读参数所有//读参数//错误类型//操作无//无效的//读无效的数//读列表//读参数信息//读数据//写数据-51//读位置//写位置//空地址//设备//通讯超时//读位置//写位置//空地址//设备//通讯超时//加载参数文件//保存参数文件//参数信息字节//参数属性(0<<7)//只读寄存(1<<7)//读写寄存//一般客户权限寄//超级用户权限寄//数据类型定义,类型值位用来表示变量字4-52typedefstruct{INT8UPopedom;INT8UINT16U//参数操作//参数数据//PLCtypedefstruct{INT8UPopedom;INT8UINT16U//参数操作//参数数据//PLC //存放参//参数有效值界限:[0]最小值;[1]最大typedefstruct{//参数数//参数类型名//参数链表首PARA_TAB*pTitle;PARA_TAB*pParam;1.3.1.PARA_SelectComm(-53函数INT8U_stdcallPARA_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能针对参数部分的数据访问,选择设置相应的通讯连输入 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯输出无返回 正注意无PARA_GetCommInfo(-54函数名INT8U_stdcallPARA_GetParaInfo(INT16U*pParaVer,INT16UINT32U功能描获取远程设备参数PARA_GetCommInfo(-54函数名INT8U_stdcallPARA_GetParaInfo(INT16U*pParaVer,INT16UINT32U功能描获取远程设备参数的版本,校验值及总大小输入参无输出参 返回 正注意事无函数名功能描计算指定数目参数列表的校验输入参 PARA_TAB类型的数组首 参数列表的个输出参无返回计算的校验注意事无函数名INT8U_stdcallPARA_GetCommInfo(INT8U*port,INT32SINT8U*mode,BOOL功能描针对参数部分的数据访问,获取当前通讯连接状输入参无输出参 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯返回 正注意事无aTab(1.3.7.PARA_Destroy(示例voidmian({int-55函数void_stdcallPARA_Destroy(PARA_SORT功能获取下位机aTab(1.3.7.PARA_Destroy(示例voidmian({int-55函数void_stdcallPARA_Destroy(PARA_SORT功能获取下位机参数或读本地匹配的参数住处并创建参数列输入 PARA_SORT类型输出无返回无注意无函数PARA_SORT*_stdcallPARA_TabToSort(PARA_TAB*pTab,intint功能将参数列表内容进行分类,转换为PARA_SORT类型数输入 PARA_TAB类型的数组首 参数列表数输出 存放参数类型数目的返回非空:PARA_TAB类型指 NULL:获取失注意无 ion,INT8U设备的参数列表内输入无输出 返回非空:PARA_TAB类型指 NULL:获取失注意无nVerify1,nVerify2; nVerify1,nVerify2; iTabNum=//先从本地文件中读if(pParaTab==NULL){//读本地文件失败后就直接从远程设备pParaTab=PARA_ReadParaTab(&iTabNum,&nVersion1,}{//获取参数列表校nVerify1=PARA_GetParaVerify(pParaTab,printf(“nVersion1=%d,nVerify1=%d\n”,nVersion1,//获取远程设备参数的版本,校验值及总大小if(err==PARA_NO_ERR){nVersion2,nVerify2,uiParaSize);}-56容进行分类转RA_TabToSort(pParaTab,iTabNum,//最后释放创建}示例voidmain({容进行分类转RA_TabToSort(pParaTab,iTabNum,//最后释放创建}示例voidmain({Tab.Popedom=RW_USER;Tab.PlcAddr=-57函数功能需通过PARA_ReadValue函数读取下位机的相应参数值。输入 PARA_TAB类型指针,存放该参数所有信息 输出无返回 正注意无函数INT8U_stdcallPARA_ReadValue(PARA_TAB功能从下位机读取该参数的值输入无输出 返回 正注意无strcpy(Tab.pText,“001,X轴指令倍乘比<●>Tab.fLmtVal[0]=1.0;data={strcpy(Tab.pText,“001,X轴指令倍乘比<●>Tab.fLmtVal[0]=1.0;data={}if(PARA_ReadValue(&Tab)!={}printf(“Readvalue:%u,data=%u\n”,*(INT16U*)(Tab.pData),}示例voidmain({-58函数名功能描从下位机读取连续多个参数的值输入参 PARA_TAB类型指针,多个参数指针首地址 输出参 个参数成员值将得到更新。返回 正注意事无Tab.PlcAddr=8000+i;Tab.fLmtVal[0]=1.0;//因为数据类型都是无Tab.PlcAddr=8000+i;Tab.fLmtVal[0]=1.0;//因为数据类型都是无符16位整型,所以直接i}if(PARA_ReadMultValue(Tab,8)!={}for(i=0;i<8;{printf(“<%d>Readvalue:%u\n”,i,}}1.4.//访问命令//无效//读目//创建//删除//删除//文件重//打开并读//打开并写//关闭-59//错误类型//错误类型//文件操作无//无效的//文件未//文件未//路径错//读目录列表//创建目录//删除目录//删除文件//打开文件//关闭文件//读数据//写数据//读位置//写位置//读无效的//路径名//空地址//设备错//通讯超时//只//只#define#define//目录内包含最大的文件目//最大文件/目录路径字节#define//磁//目//文-602:文档//文件属性(0:磁 1:目//文件名(8+3格式//文件大小/磁盘总2:文档//文件属性(0:磁 1:目//文件名(8+3格式//文件大小/磁盘总//磁盘剩余字节}FS_DIRENT;//单元大小24typedefstruct{//目录列表 pDirent[MAX_LIST];//目录列表信typedefstruct{filepos;//文件访问位//文件大//文件读写操//文件错误信1.4.1.FS_SelectComm(-61函数INT8U_stdcallFS_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能针对文件部分的数据访问,选择设置相应的通讯连输入 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯1.4.2.FS_GetCommInfo(1.4.3.FS_FReadDir(示例voidmain({FS_DIR//空路径表示读根目录信息(磁盘信息err1.4.2.FS_GetCommInfo(1.4.3.FS_FReadDir(示例voidmain({FS_DIR//空路径表示读根目录信息(磁盘信息err=FS_FReadDir(“”,if(err!=-62函数名INT8U_stdcallFS_FReadDir(constINT8S*pDirName,FS_DIR功能描读远程文件系统的目录信息输入参 输出参 存放目录信息的结构体指返回 正注意事无函数名INT8U_stdcallFS_GetCommInfo(INT8U*port,INT32S*iDevNum,*mode,BOOL功能描针对文件部分的数据访问,获取当前通讯连接状输入参无输出参 通讯端口 从机设备 针对串口通讯选择RTUASCII 允许通讯返回 正注意事无输出参无返回 正注意事无录失败“C:\\”pDir);//Cif(err!={printf(“读C盘根目录信息失败}err=FS_FReadDir(“D:\\ADT\\”,录失败“C:\\”pDir);//Cif(err!={printf(“读C盘根目录信息失败}err=FS_FReadDir(“D:\\ADT\\”, //DADTif(err!={printf(“读目录失败}}FS_FOpen(FS_FRead(-63函数INT8U_stdcallFS_FRead(FS_FILE*pFile,void*pData,INT32U功能读远程文件内输入 文件结构体指 读取文件内容的字节长输出 存放读取的文件内函数FS_FILE*_stdcallFS_FOpen(constINT8S*pFileName,constchar功能打开远程文输入 要打开的远程文件路径,所有文件名都为绝对路 文件打开模式('r':读操 'w':写操作输出无返回 文件结构体指针,执行成功后返回非0注意访问远程文件时,同时只能打开一个远程文件。该函数与FS_FClose()函FS_FWrite(FS_FClose(FS_Remove(示例voidmain({-64函数名INT8U_stdcallFS_Remove(constINT8S功能描删除文输入参FS_FWrite(FS_FClose(FS_Remove(示例voidmain({-64函数名INT8U_stdcallFS_Remove(constINT8S功能描删除文输入参 删除文件的路输出参无返回 正注意事无函数名INT8U_stdcallFS_FClose(FS_FILE功能描关闭远程文件内容,与FS_FOpen对应使用输入参 文件结构体指针输出参无返回 正注意事无函数名INT8U_stdcallFS_FWrite(FS_FILE*pFile,constvoid*pData,INT32U功能描写远程文件内输入参 文件结构体指针 存放写入的文件内 写文件内容的字节长输出参无返回 正注意事无返回 正注意事无D:\\ADT\\TEST.TXT”, //以只读方式打开远程if(pFile==D:\\ADT\\TEST.TXT”, //以只读方式打开远程if(pFile=={}printf(“Filesize=%d\n”,pFile-//打印打开文件err=FS_FRead(pFile,Buff,100);if(err!={}//从远程文件读100字节数//关闭打开的pFile=FS_FOpen(“D:\\ADT\\ADT.TXT”,“w”); if(pFile==NULL){}if(err!={printf(“写远程文件失败//向远程文件写100字节数//关闭打开的-65}}1.4.9.FS_FSeek(示例voidmain({//假设TEST.TXT文件内容是:0123456789。}}1.4.9.FS_FSeek(示例voidmain({//假设TEST.TXT文件内容是:0123456789。个字节数//用只读方式打开一个远程if(pFile==NULL){-66函数名INT8U_stdcallFS_FTell(FS_FILE*pFile,INT32S功能描获取当前文件操作位置输入参 文件结构体指针输出参 存放当前文件操作的位置,相对于文件开始位返回 正注意事无函数名INT8U_stdcallFS_FSeek(FS_FILE*pFile,INT32S功能描定位

温馨提示

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

评论

0/150

提交评论