下位机软件概要设计100108Word下载.docx
- 文档编号:16524937
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:22
- 大小:28.32KB
下位机软件概要设计100108Word下载.docx
《下位机软件概要设计100108Word下载.docx》由会员分享,可在线阅读,更多相关《下位机软件概要设计100108Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
1.加工数据向下传输,把接收数据写进SRAM(下传)
起点:
上位机与下位机只要之间有数据通信,都必须进行握手,以确保其可靠性,准确性。
握手(上传):
数据包接收成功信号回馈信号数据名给PC机(OK)
加工过程数据(上传):
下位机数据加工过程中间隔X毫米回发当前数据给PC机,加工过程的数据位(L1~L200)。
加工过程中X回退信号:
保证在限位开关信号到达前,还有另外一个信号来协调限位开关信号保证能够回退。
(xbit)
2.传感器检测(上传)
处理函数:
sensor_test()。
3.点动控制(下传)
启停控制:
暂停握手:
M00继续握手:
M01程序停止:
M05
气夹控制:
动夹子打开:
M10动夹子夹紧:
M11定夹子打开:
M20定夹子夹紧:
M21
调刀控制:
进给前进到位:
(X)M15进给后退到位:
(X)M16回原点:
(Y)M17
摆断:
M31切断:
M32急停:
M30
处理函数:
read_mpara();
4.带刀参数控制(下传)
调刀控制:
调刀:
G01Y[y0](0D)M05
反调刀:
G01Y[-y0](0D)M05
平衡测试:
G01X[x0](0D)
G01Y[y0](0D)
G01N[10]X[x1]Y[y1](0D)
G01Y[y2](0D)
G01X[x3](0D)
M31(0D)
换刀控制:
进给电机前进:
G01X[x0](0D)M05
进给电机后退:
G01X[-x0](0D)M05
处理函数:
read_gcode();
5.速度参数等控制(下传)
通过修改相应参数的数值,并回车,点击保存按钮,将得到更新后的数据并传送给下位机,握手信号S做为速度参数等的包头,附加不同参数代表不同的对象,让下位机得以实现相应的数据处理。
其处理函数:
set_para()。
送料速度:
SA旋转速度:
SB加速速度:
SC检测长度:
SD偏高位置:
SE
平滑角度:
SF桥位长度:
SG切断次数:
SH步进量:
SI
6.保存的过程参数(上传)
set_para();
7.读取数据成功处理函数:
XXXX();
8.读取数据错误处理函数:
4.3基本函数整理和编制
ucharCharToHex(ucharbChar);
字符十六进制
ucharHexToChar(ucharbHex);
/
十六进制字符
voidset_T0(bitHLBit);
设置定时器0高低字节作X脉冲定时
voidset_T3(bitHLBit);
设置定时器3高低字节Y脉冲定时
voidset_para();
根据上位机下传的参数设置相应变量
voidxy_set();
X和Y运行长度和角度设置
voidx_go();
X运动判断
voidy_go();
Y运动判断
voidx_cnt();
X计数
voidy_cnt();
Y计数
voidx_alt();
X异常分支
voidwiggle_set();
摆断设置
voidread_gcode();
longintread_gpara(ucharCode[],ucharbegin,ucharend);
取出参数
voidread_fpara();
读F代码,临时设置XY速度
voidread_ppara();
读P代码,控制输出端口
voidread_mcode(ucharrow);
读M代码,辅助功能
voidfend_test();
前进到位检测
voidbend_test();
后退到位检测
voidpause_test();
暂停按钮检测
4.4脉冲产生函数编制
4.5编码器检测函数编制
1.encode_test()
4.6单段加工控制程序编制
连续花控制程序编制
单段加工:
G01X[x1](0D)
G01Y[y1](0D)
G01N10X[x2]Y[y2](0D)
G01Y[y3](0D)
G01X[x4](0D)
4.7连续加工控制程序编制
连续加工5个
G01M5(0D)
……
4.8全局变量的定义和使用
要求:
变量名,变量类型,变量使用范围
1.宏定义变量
#defineucharunsignedchar
#defineuintunsignedint
#defineFREQ22118400
机器周期0.54us
#defineT0SET4
0.54us*4=2us=500k
#defineT0_CNT1SFREQ/T0SET
5029600
#defineT0_DIVT0_CNT1S/1000
#defineXDIR_F0
X轴正方向输出电平
#defineXDIR_B1
X轴负方向输出电平
#defineYDIR_F0
Y轴正方向输出电平
#defineYDIR_B1
Y轴负方向输出电平
#defineOFF1
继电器断
#defineON0
继电器通
#defineTH_WIDTH(65536-50)/256
脉冲高电平定时器高字节
#defineTL_WIDTH(65536-50)%256
脉冲高电平定时器低字节
2.I/O口位变量
输入:
sbitfend_in=P4^0;
X前进到位检测
sbitbend_in=P4^1;
X后退到位检测
sbitpause_in=P4^2;
X暂停检测
sbittool_in=P4^3;
刀料检测
sbithead_in=P4^4;
刀头原点
sbitmclamp_in=P4^5;
动夹打开感应
输出:
sbitu1tx=P0^4;
串口1收/发使能
sbitx_cp=P2^0;
X轴脉冲输出
sbitx_dir=P2^1;
X轴方向输出
sbity_cp=P3^0;
Y轴脉冲输出
sbity_dir=P3^1;
Y轴方向输出
sbitmclamp_out=P6^0;
动夹加紧
sbitfclamp_out=P6^1;
定夹加紧
sbithead_out=P6^2;
刀头电机使能
sbitcut_out=P6^3;
切断
sbitbridge_out=P6^4;
打桥
3.串行通信变量
标志位
bitGBit;
串口0接收暂存GCode完成
bitMBit;
串口0接收暂存MCode完成
bitFBit;
串口0接收暂存FCode完成
bitPBit;
串口0接收暂存PCode完成
bitSetBit;
串口0接收暂存SetCode完成
bitGInBit;
串口0接收暂存GCode过程中
GInNum
接收G代码个数
PairNum
G代码XY对数
SetNum
SetCode序号
4.传送加工数据
PC机设置下位机参数
ucharxdataXSpeed;
送料速度
ucharxdataYSpeed;
旋转速度
ucharxdataAccSpeed;
加速速度
ucharxdataTestLen;
检测长度
uintxdataoffset;
偏离位置
ucharxdataSmooth;
平滑角度
ucharxdataBridgeLen;
桥位长度
ucharxdataWiggleNum
摆断次数
uintxdatastep_para;
步进量
uintxdatat0_set;
送料速度定时器0设置
uintxdatat3_set;
旋转速度定时器3设置
ucharxdataTH0temp;
定时器0高字节
ucharxdataTL0temp;
定时器0低字节
ucharxdataTH3temp;
定时器3高字节
ucharxdataTL3temp;
定时器3低字节
5.控制状态
ucharSegNum
连续加工段数
ucharWiggleChar
摆断运动序号
ucharxdataWiggleCnt;
摆断次数计数0~WiggleNum
ucharPT
G代码XY对序号指示
ucharXYChar
X轴Y轴运动状态字
ucharXAltChar
X轴异常状态字
6.保存参数的数组
ucharxdataFCode[2][8];
F临时速度设置代码暂存数组
ucharxdataGCode[50][22];
G代码暂存数组
ucharxdataMCode[4];
M辅助代码暂存数组
ucharxdataNCode[5];
连续加工段数代码
ucharxdataPCode[5];
P端口控制代码暂存数组暂存数组
ucharxdataSetCode[9][7];
S参数暂存数组
ucharxdataNNum[50];
参数对XY对应次数暂存数组
longintxdatag_paras[50][2];
G代码参数对
7.X轴Y轴运动标志
bitXGoBit;
X轴运动
bitYGoBit;
Y轴运动
bitYBackBit
Y轴返回临界
8.计算脉冲数目
ucharXCnt;
x_cp每发一个脉冲将其减1
ucharYCnt;
y_cp每发一个脉冲将其减1
uintxdiv;
x_cp要发的脉冲数/255所得的商
uintydiv;
y_cp要发的脉冲数/255所得的商
ucharXRest;
x_cp要发的脉冲数/255所得的余数
ucharYRest;
y_cp要发的脉冲数/255所得的余数
longintxdatagy_para;
保存上次Y脉冲值,作返回用
longintxdatawiggle_para;
摆断Y参数
9.传送成功失败数组
ucharERROR[2];
ucharSUCCESS[3];
10.上传的数据结构
ucharsensor_status[3];
//传感器状态数组
11.控制函数
12.传感器检测
13.计时
14.加工完标志
15.程序第一次运行标志处理
16.移动到起点的处理函数标志
直线角
脉冲
半径
小进料
直线叫拉伸
补偿值
0.0
500
1.0
1660
8.0
100
30
5
3.0
650
1.5
1500
10.0
200
35
10
5.0
700
2.0
1390
15.0
350
40
11
7.0
750
2.1
1350
45
12
9.0
780
2.5
1330
50
13
11.0
820
1300
300
55
15
13.0
850
4.0
1255
60
18
890
1115
65
20
17.0
940
5.1
1025
70
22
19.0
1000
6.0
960
75
25
21.0
1100
900
80
26
23.0
1260
885
85
28
25.0
8.1
870
90
27.0
1450
180
30.0
1550
35.0
1680
815
40.0
1800
12.0
810
45.0
1900
12.1
800
50.0
2100
790
59.0
2200
14.0
60.0
725
65.0
2370
16.0
710
70.0
2500
705
75.0
2700
18.0
80.0
2880
690
85.0
3200
20.0
680
88.0
3500
90.0
3900
675
180.0
645
625
610
390
582
572
550
100.0
520
150.0
200.0
480
300.0
430
400.0
400
500.0
1000.0
X轴
10mm=1000脉冲
0.01mm/脉冲
Y轴
电机
一圈1万值=1440脉冲
0.25度/脉冲
经减速器1/50后
1圈=50万值=72000脉冲
0.05度/脉冲
4.9程序流程
加工流程
1.U0接收G代码
2.提取至G数组对,N数组
3.打桥
4.加工G数组对(同时打桥)
5.切断
打桥流程
200mm
130mm
70mm
1.剪断
2.退至第一打桥位,打桥
3.加工G代码,遇到打桥位停下来打桥
4.加工结束,进至剪断位,剪断
Y回原点流程
1.若处于限位低电平,顺时针转;
若处于限位高电平,逆时针转
2.至高低跳变位,逆时针转,找第一个Z,停
3.再继续反转△Y
到位流程
X后退到位(归零)
1.XDIR_B
2.到左限位低电平,开始用慢速后退
3.到第一个Z(<
=X*100脉冲=Xmm),在x_cp低电平停止后退
4.若左限位后退Xmm仍未检测到Z,则改为前进寻找第一个Z作为零点
X前进到位
1.XDIR_F
2.到右限位低电平,在x_cp低电平停止前进
加工前进到位,后退回零继续
第一次中间位置开始
1.到右限位低电平,在x_cp低电平停止前进
其他从左零开始
1.到设定Z量,在x_cp低电平停止前进
2.X停止,Y回零,定夹合,动夹开
3.反向快速后退
4.【X后退到位】,Z清零,动夹合,定夹开
5.正向X继续加工
加工G数组对
1.走x0
2.到y0方向临界
3.走y0
4.y0回临界
5.走x1
6.到y1方向临界
7.走y1
8.y1回临界
1.若在原点,到y切方向临界
2.走y切
4.y切回临界
5.回原点
6.到y反切方向临界
7.走y反切
8.y反切回临界
9.若切完,回原点
暂停
1.U0接收M00
2.x_cp低电平停止X
切断时暂停
2.设标志XAltChar|=0x40
3.在y切回临界时判断
标志字节:
Y
X
0x80
0x40
0x20
0x10
0x08
0x04
0x02
0x01
XYChar
回原点
到临界
角度
到位end
进给para
AltChar
急停
YZ
X前Z
X前限
X后Z
X后限
SpeedChar
调
Y_TEST
慢
Y_SLOW
快
Y_FAST
设
Y_SET
X_TEST
X_SLOW
X_FAST
X_SET
xy_go结构
XGoBit
x_switch
0x00
x_go
0赋值
x_set
TestBit
测速
1
设速
1计数
x_cnt
XCnt==0
xdiv>
赋XCnt
开T0
xdiv=0
XBackBit
x_rest_back
x_renew
XCnt>
0结束
x_over
CutBackBit
x_stop?
Nnum==0
x_bridge
对完
M
对未完
同对Y
XbackBit=1
x_save
x_to_z
松快F
x_at_z
x_rest_blank
x_back
原点
非原
|=0x20
0x21
x_pause
急0x80
x_stop
x_end
_switch
夹设F
y_go
YBackBit
赋-
赋
y_cnt
Step
X头对桥(判)
X头对弯口
△
动夹△
剪
200-130=70
2
退
d1
d1-130
d1-200<
G02X[d1-200]
3
4
进
130+x0
x0
130-d1
(130+x0)-d1
G01X[(130+x0)-d1]
弯
G01Yy0
6
d2
d2-130
x1
d2-(130+x0)
G02X[d2-(130+x0)]
7
8
130+x0+x1
x0+x1
(130+x0+x1)-d2
G01X[(130+x0+x1)-d2]
9
G01Yy1
130+x0+x1+x2
x0+x1+x2
x2
(130+x0+x1+x2)-(130+x0+x1)=x2
G01X[x2]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 下位 软件 概要 设计 100108