OMC加工文件格式说明.docx
《OMC加工文件格式说明.docx》由会员分享,可在线阅读,更多相关《OMC加工文件格式说明.docx(23页珍藏版)》请在冰点文库上搜索。
![OMC加工文件格式说明.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/83b84c53-5952-498e-8b52-edefde687e92/83b84c53-5952-498e-8b52-edefde687e921.gif)
OMC加工文件格式说明
目录
1.加工文件头的格式以C语言结构体定义如下:
2
2.加工指令格式以C语言结构体定义如下:
3
3.针对与各条加工指令,其各个数据区域代表的意义见下表:
4
注释:
Ø加工文件的存放路径为:
"/flash/xxx.djj"
Ø其中xxx为加工文件的文件号,不足3位前面补0
Ø加工文件包括一个文件头和若干条加工指令(最大为10000条),加工文件头大小固定为1024个字节,一条加工指令的长度固定为40个字节
1.加工文件头的格式以C语言结构体定义如下:
#defineAXES_NUM_REMAIN10//预留电机轴数
#definePORT_NUM_REMAIN20//预留的胶枪数
typedefstruct
{
floatstartv[AXES_NUM_REMAIN];//空移起步速度
floatacc[AXES_NUM_REMAIN];//空移加速度
floatspeed[AXES_NUM_REMAIN];//空移速度
floatfBasePos[2][AXES_NUM_REMAIN];//对针点
floatfAdjustPos[2][AXES_NUM_REMAIN];//调整位置
floatfStopPos[AXES_NUM_REMAIN];//停止位置
floatTrackStartv;//轨迹起步速度
floatTrackAcc;//轨迹加速度
floatTrackSpeed;//轨迹速度
floatfOpenDelay;//开胶延时
floatfCloseDelay;//关胶延时
floatfOpenLag;//开胶滞后时间
floatfCloseAhead;//提前关胶距离
floatfDrawbench;//拉丝高度
floatfDrawSpeed;//拉丝速度
floatfDrawDelay;//拉丝延时
floatfSafetyPos;//Z轴安全高度
floatfUpStartv;//Z轴上抬起步速度
floatfUpAcc;//Z轴上抬加速度
floatfUpSpeed;//Z轴上抬速度
unsignedshortLayerJet[PORT_NUM_REMAIN];//胶枪所在层对应设置
unsignedshortbSetBasePos[2];//是否设置了对针点
unsignedshortbSetStopPos;//是否设置了停止位置
unsignedshortbGotoStopPos;//加工完是否回停止位置
unsignedshortbSetSafetyPos;//是否设置了安全高度
unsignedshortbSetAdjustPos[2];//是否需要调整对针点位置
floatfRotateRadius;//胶枪旋转半径
floatfRotateOffset;//胶枪旋转偏移角度
floatfFollowK;//挤胶比例系数
}CFileParam;//文件参数
typedefstruct
{
unsignedshorttotal;//总点数
unsignedshortver;//文件版本(项目号)
CFileParamparam;//参数
unsignedcharremain[0x400-4-sizeof(CFileParam)-400];
unsignedshortuser_param[200];
}CFileHead;//文件头
2.加工指令格式以C语言结构体定义如下:
typedefstruct
{
unsignedcharucType;//加工点类型
unsignedcharucSubType;//加工点子类型,如圆弧所在平面等
unsignedcharucEnable;//参数有效性,
unsignedcharucParam;//一般用于指明端口号等
unsignedshortusParam[2];//第一个一般用于指明运动速度,第二个一般用于指明延时时间
floatfParam[8];//浮点型参数,一般用于存储坐标、长度等参数,
}CInstr;//加工点
3.针对与各条加工指令,其各个数据区域代表的意义见下表:
变量类型
变量名
说明
字节
第一行基地址
和每行增量
指令数据以字节访问的基地址和每行增量
指令数据以16位或32位的方式访问的基地址
unsignedchar
ucType
类型
1
4X_6002(+100)
4x_7151(+40)
4x_7551(+20)
unsignedchar
ucSubType
子类型
1
4X_6023(+100)
4x_7152(+40)
unsignedchar
ucEnable
使能
1
4X_6021(+100)
4x_7153(+40)
4x_7552(+20)
unsignedchar
ucParam
滞后/提前/端口号
1
4X_6033(+100)
4x_7154(+40)
unsignedshort
usParam[0]
速度比
2
4X_6019(+100)
4x_7155(+40)
4x_7553(+20)
unsignedshort
usParam[1]
延时时间
2
4X_6020(+100)
4x_7157(+40)
4x_7554(+20)
float
fParam[0]
X坐标
4
4X_6003(+100)
4x_7159(+40)
4x_7555(+20)
float
fParam[1]
Y坐标
4
4X_6005(+100)
4x_7163(+40)
4x_7557(+20)
float
fParam[2]
Z坐标
4
4X_6007(+100)
4x_7167(+40)
4x_7559(+20)
float
fParam[3]
U坐标
4
4X_6009(+100)
4x_7171(+40)
4x_7561(+20)
float
fParam[4]
V坐标
4
4X_6011(+100)
4x_7175(+40)
4x_7563(+20)
float
fParam[5]
W坐标
4
4X_6013(+100)
4x_7179(+40)
4x_7565(+20)
float
fParam[6]
4
4X_6015(+100)
4x_7183(+40)
4x_7567(+20)
float
fParam[7]
针高
4
4X_6017(+100)
4x_7187(+40)
4x_7569(+20)
一.IT_BEGIN_PT(起点):
一般将一段连续轨迹的第一个点设置为起点,最后一个点设置为终点,起点开胶,终点关胶
ucSubType:
未用-----------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令-------4X_6021(+100)
ucParam:
是否滞后开胶(开始运动后再开胶),为0表示不滞后,非0表示滞后------------4X_6033(+100)
usParam[0]:
速度百分比,基准速度为空移速度,单位为0.1%-------------------------4X_6019(+100)
usParam[1]:
未用-----------4X_6020(+100)
fParam[0]:
X坐标-----------4X_6003(+100)
fParam[1]:
Y坐标-----------4X_6005(+100)
fParam[2]:
Z坐标-----------4X_6007(+100)
fParam[3]:
U坐标-----------4X_6009(+100)
fParam[4]:
V坐标-----------4X_6011(+100)
fParam[5]:
W坐标----------4X_6013(+100)
fParam[6]:
未用-------------4X_6015(+100)
fParam[7]:
未用-------------4X_6017(+100)
二.IT_END_PT(终点):
一般将一段连续轨迹的第一个点设置为起点,最后一个点设置为终点,起点开胶,终点关胶
ucSubType:
未用------------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令--------4X_6021(+100)
ucParam:
是否提前关胶(还未到达终点即关胶),为0表示不提前,非0表示提前-----------4X_6033(+100)
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%----------4X_6019(+100)
usParam[1]:
未用-----------4X_6020(+100)
fParam[0]:
X坐标-----------4X_6003(+100)
fParam[1]:
Y坐标-----------4X_6005(+100)
fParam[2]:
Z坐标-----------4X_6007(+100)
fParam[3]:
U坐标-----------4X_6009(+100)
fParam[4]:
V坐标-----------4X_6011(+100)
fParam[5]:
W坐标-----------4X_6013(+100)
fParam[6]:
未用------------4X_6015(+100)
fParam[7]:
针高(点完胶后的抬针高度)------------4X_6017(+100)
三.IT_DMOVE(直线):
ucSubType:
未用------------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令--------4X_6021(+100)
ucParam:
未用--------------4X_6033(+100)
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%----------4X_6019(+100)
usParam[1]:
未用-----------4X_6020(+100)
fParam[0]:
X坐标-----------4X_6003(+100)
fParam[1]:
Y坐标-----------4X_6005(+100)
fParam[2]:
Z坐标-----------4X_6007(+100)
fParam[3]:
U坐标-----------4X_6009(+100)
fParam[4]:
V坐标-----------4X_6011(+100)
fParam[5]:
W坐标-----------4X_6013(+100)
fParam[6]:
未用------------4X_6015(+100)
fParam[7]:
未用------------4X_6017(+100)
四.IT_PASS(空移)
ucSubType:
未用------------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令--------4X_6021(+100)
ucParam:
未用--------------4X_6033(+100)
usParam[0]:
速度百分比,基准速度为空移速度,单位为0.1%--------------------------4X_6019(+100)
usParam[1]:
未用-----------4X_6020(+100)
fParam[0]:
X坐标-----------4X_6003(+100)
fParam[1]:
Y坐标-----------4X_6005(+100)
fParam[2]:
Z坐标-----------4X_6007(+100)
fParam[3]:
U坐标-----------4X_6009(+100)
fParam[4]:
V坐标-----------4X_6011(+100)
fParam[5]:
W坐标-----------4X_6013(+100)
fParam[6]:
未用------------4X_6015(+100)
fParam[7]:
未用------------4X_6017(+100)
五.IT_POINT(单点)
ucSubType:
未用------------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令--------4X_6021(+100)
ucParam:
未用--------------4X_6033(+100)
usParam[0]:
速度百分比,基准速度为空移速度,单位为0.1%--------------------------4X_6019(+100)
usParam[1]:
单点时间,单位为毫秒------------------------------------------------4X_6020(+100)
fParam[0]:
X坐标-----------4X_6003(+100)
fParam[1]:
Y坐标-----------4X_6005(+100)
fParam[2]:
Z坐标-----------4X_6007(+100)
fParam[3]:
U坐标-----------4X_6009(+100)
fParam[4]:
V坐标-----------4X_6011(+100)
fParam[5]:
W坐标-----------4X_6013(+100)
fParam[6]:
未用------------4X_6015(+100)
fParam[7]:
针高(点完胶后的抬针高度)------------4X_6017(+100)
六.IT_CW_ARC(顺圆弧)&IT_CCW_ARC(逆圆弧):
ucSubType:
圆弧所在平面,0:
XY平面;1:
XZ平面;2:
YZ平面;其他值:
XY平面------------4X_6023(+100)
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令--------4X_6021(+100)
ucParam:
未用-------------4X_6033(+100)
usParam[0]:
未用--------------4X_6019(+100)
usParam[1]:
未用--------------4X_6020(+100)
fParam[0]:
未用-----------4X_6003(+100)
fParam[1]:
未用-----------4X_6005(+100)
fParam[2]:
未用-----------4X_6007(+100)
fParam[3]:
未用-----------4X_6009(+100)
fParam[4]:
未用-----------4X_6011(+100)
fParam[5]:
未用-----------4X_6013(+100)
fParam[6]:
圆弧半径-------4X_6015(+100)
fParam[7]:
未用-----------4X_6017(+100)
*注意:
该指令后面必须要接一个"圆弧终点"指令,为一段连续轨迹的最后一个图形时后接"终点"指令
七.IT_CMOVE(圆弧)&IT_CIRCLE(整圆):
ucSubType:
圆弧所在平面,0:
XY平面;1:
XZ平面;2:
YZ平面;其他值:
XY平面.
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
未用
usParam[1]:
未用
fParam[0]:
中间点X坐标
fParam[1]:
中间点Y坐标
fParam[2]:
中间点Z坐标
fParam[3]:
中间点U坐标
fParam[4]:
中间点V坐标
fParam[5]:
中间点W坐标
fParam[6]:
未用
fParam[7]:
未用
*注意:
该指令后面必须要接一个"圆弧终点"指令,为一段连续轨迹的最后一个图形时后接"终点"指令
*注意:
整圆的实际终点和起点是重合的,参数中设置的圆弧终点只是起辅助作用.
八.IT_END_ARC(圆弧终点)
ucSubType:
未用
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%
usParam[1]:
未用
fParam[0]:
终点X坐标
fParam[1]:
终点Y坐标
fParam[2]:
终点Z坐标
fParam[3]:
终点U坐标
fParam[4]:
终点V坐标
fParam[5]:
终点W坐标
fParam[6]:
未用
fParam[7]:
未用
*注意:
该指令必须紧跟在"顺圆弧"、"逆圆弧"、"圆弧"或"整圆"指令后面使用
*整圆的实际终点和起点是重合的,参数中设置的圆弧终点只是起辅助作用.
九.IT_CW_ELL(顺椭圆)&IT_CCW_ELL(逆椭圆):
ucSubType:
椭圆所在平面,0:
XY平面;1:
XZ平面;2:
YZ平面;其他值:
XY平面.
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
未用
usParam[1]:
未用
fParam[0]:
椭圆心X坐标
fParam[1]:
椭圆心Y坐标
fParam[2]:
椭圆心Z坐标
fParam[3]:
椭圆心U坐标
fParam[4]:
椭圆心V坐标
fParam[5]:
椭圆心W坐标
fParam[6]:
椭圆半径1
fParam[7]:
椭圆半径2
*注意:
该指令后面必须要接一个"椭圆终点"指令,为一段连续轨迹的最后一个图形时后接"终点"指令
*若为XY或XZ平面,椭圆半径1指的是X轴的半径若为YZ平面,椭圆半径1指的是Y轴的半径
十.IT_END_ELL(椭圆终点):
ucSubType:
未用
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%
usParam[1]:
未用
fParam[0]:
终点X坐标
fParam[1]:
终点Y坐标
fParam[2]:
终点Z坐标
fParam[3]:
终点U坐标
fParam[4]:
终点V坐标
fParam[5]:
终点W坐标
fParam[6]:
未用
fParam[7]:
未用
*注意:
该指令必须紧跟在"顺椭圆"或"逆椭圆"指令后面使用
IT_BEZIER(贝塞尔曲线):
ucSubType:
未用
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%
usParam[1]:
未用
fParam[0]:
X坐标
fParam[1]:
Y坐标
fParam[2]:
Z坐标
fParam[3]:
U坐标
fParam[4]:
V坐标
fParam[5]:
W坐标
fParam[6]:
未用
fParam[7]:
未用
IT_END_BEZIER(样条终点):
ucSubType:
未用
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
未用
usParam[0]:
速度百分比,基准速度为文件参数中设置的轨迹速度,单位为0.1%
usParam[1]:
未用
fParam[0]:
终点X坐标
fParam[1]:
终点Y坐标
fParam[2]:
终点Z坐标
fParam[3]:
终点U坐标
fParam[4]:
终点V坐标
fParam[5]:
终点W坐标
fParam[6]:
未用
fParam[7]:
未用
*注意:
该指令必须紧跟在样条指令后面使用
十一.IT_RESET(电机复位):
ucSubType:
未用
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
其他位从低到高分别代表X、Y、Z、U、V、W是否需要复位,为0表示不需要,非0表示需要
ucParam:
未用
usParam[0]:
未用
usParam[1]:
未用
fParam[0]:
未用
fParam[1]:
未用
fParam[2]:
未用
fParam[3]:
未用
fParam[4]:
未用
fParam[5]:
未用
fParam[6]:
未用
fParam[7]:
未用
十二.IT_OUTPUT(端口输出):
ucSubType:
为0表示输出关信号,非0表示输出开信号
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令
ucParam:
输出端口号
usParam[0]:
未用
usParam[1]:
输出延时,单位1毫秒
fParam[0]:
未用
fParam[1]:
未用
fParam[2]:
未用
fParam[3]:
未用
fParam[4]:
未用
fParam[5]:
未用
fParam[6]:
未用
fParam[7]:
未用
*注意:
输出延时为先输出再延时,相当于一条输出指令加一条延时指令
十三.IT_WAIT_IN(等待输入)
ucSubType:
为0表示等待关信号,非0表示等待开信号
ucEnable:
最高位为指令使能,最高位为1时整个指令才会执行,否则跳过该指令