下位机软件概要设计100108.docx
- 文档编号:3620015
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:22
- 大小:28.32KB
下位机软件概要设计100108.docx
《下位机软件概要设计100108.docx》由会员分享,可在线阅读,更多相关《下位机软件概要设计100108.docx(22页珍藏版)》请在冰豆网上搜索。
下位机软件概要设计100108
广东工业大学信息学院
机电控制研究所软件开发文档
文档编号:
WD
版本号:
WD2009
文档名称:
下位机软件概要设计说明书
项目名称:
基于Windows的弯刀加工控制系统
项目负责人:
编写:
赖南辉
2009年12月日
校对:
年月日
审核:
年月日
批准:
年月日
1引言
1.1编写目的
本说明书提供了用C8051F单片机开发的下位机各个模块部件的说明,以供编码人员具体实现及今后的维护工作。
2总体设计
2.1设计原则
在确定目标系统的过程中,主要遵循了以下几个原则:
Ø系统设计考虑程序的扩展性
Ø系统运行的稳定性和安全性(为现实对象构造合适的类,使用合适的数据和方法)
Ø有一定的意外事件自动处理能力,并有相应的意外事件提醒及记录功能
Ø系统的参数可以通过系统进行设置
Ø如果设计开发过程中扩展性、维护性与系统运行速度的开发设计有冲突,优先考虑系统扩展性、维护性。
Ø界面设计统一,使用方便、界面友好、配置和管理简单灵活
Ø对于系统设置要求开发比较灵活的辅助工具,以配合系统开发
Ø采用可靠的加密技术防止软件发布后备盗版。
3软件结构
下位机软件由如下几个模块组成:
Ø系统初始化模块(串行通信设置,中断寄存器,输入输出端口设置,定时器设置)
Ø串口通信模块(点动函数处理模块,传感器状态检测,过程参数存储模块)
Ø基本函数整理和编制
Ø脉冲产生模块
Ø编码检测模块
Ø连续弯刀控制程序编制
Ø单段弯刀控制程序编制
4程序描述
本软件是使用结构化C语言开发的。
程序应该注重程序的结构化,以下对各个重要的构件进行列举:
4.1系统初始化模块(输入输出端口设置,定时器设置,串行通信设置)
voidconfig_IO();
I/O端口状态设置
voidtime1_init();
T1作U1定时器,T0定时X脉冲输出
voidtime2_init();
T2作U0定时器
voidtime3_init();
T3定时Y脉冲输出
voiduart0_init();
串口0初始化
voiduart1_init();
串口1初始化
voidexternal_osc(void)
设置外部晶振
4.2串口通信中断模块
串口发送函数:
U0_SendByte(ucharpara);
串口0发送一个字节
U1_SendByte(ucharpara);
串口1发送一个字节
U0_SendBuf(ucharPara[]);
串口0发送一串数据,以0x0D结尾
U1_SendBuf(ucharPara[]);
串口1发送一串数据,以0x0D结尾
其它处理函数
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.读取数据错误处理函数:
XXXX();
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();/
X异常分支
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[x0](0D)
G01Y[y0](0D)
G01X[x1](0D)
G01Y[y1](0D)
G01N10X[x2]Y[y2](0D)
G01Y[y3](0D)
G01X[x4](0D)
M31(0D)
4.7连续加工控制程序编制
连续加工5个
G01M5(0D)
G01X[x0](0D)
……
M05
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
8.0
100
45
12
9.0
780
2.5
1330
10.0
200
50
13
11.0
820
3.0
1300
15.0
300
55
15
13.0
850
4.0
1255
60
18
15.0
890
5.0
1115
65
20
17.0
940
5.1
1025
70
22
19.0
1000
6.0
960
75
25
21.0
1100
7.0
900
80
26
23.0
1260
8.0
885
85
28
25.0
1350
8.1
870
90
35
27.0
1450
9.0
850
180
40
30.0
1550
10.0
820
35.0
1680
11.0
815
40.0
1800
12.0
810
45.0
1900
12.1
800
50.0
2100
13.0
790
59.0
2200
14.0
780
60.0
2200
15.0
725
65.0
2370
16.0
710
70.0
2500
17.0
705
75.0
2700
18.0
700
80.0
2880
19.0
690
85.0
3200
20.0
680
88.0
3500
25.0
690
90.0
3900
30.0
675
180.0
3900
35.0
645
40.0
625
45.0
610
50.0
645
60.0
390
70.0
582
80.0
572
90.0
550
100.0
520
150.0
500
200.0
480
300.0
430
400.0
400
500.0
350
1000.0
300
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
切断时暂停
1.U0接收M00
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结构
XYChar
AltChar
XGoBit
XYChar
0x01
x_switch
0x00
x_go
0赋值
x_set
TestBit
测速
1
0
设速
1
1计数
x_cnt
XCnt==0
xdiv>0
赋XCnt
开T0
xdiv=0
XBackBit
x_rest_back
x_renew
0x01
0
0
XCnt>0
开T0
0结束
x_over
CutBackBit
x_stop?
Nnum==0
x_bridge
打桥
0x01
对完
M
对未完
同对Y
0x20
0x01
XbackBit=1
x_save
x_to_z
松快F
0x02
0x02
XbackBit=1
x_save
x_at_z
x_rest_blank
松快F
0x01
0x04
0x08
x_back
原点
x_save
0x02
非原
|=0x20
0x21
0x40
0x80
x_pause
原点
急0x80
x_stop
0x00
非原
|=0x20
0x21
0x02
x_end
_switch
0x00
开T0
0x01
x_to_z
松快F
0x02
0x02
x_at_z
夹设F
0x00
0x01
0x04
0x08
x_stop
0x40
x_pause
原点
0x80
0x00
非原
0x21
0x10
y_go
0赋值
YBackBit
赋-
0
赋
1计数
y_cnt
0结束
YBackBit
Step
X头对桥(判)
X头对弯口
△
动夹△
1
剪
200
200-130=70
2
退
d1
d1-130
d1-200<0
G02X[d1-200]
3
打桥
4
进
130+x0
x0
130-d1
(130+x0)-d1
G01X[(130+x0)-d1]
x0
5
弯
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
10
进
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
![提示](https://static.bdocx.com/images/bang_tan.gif)