模块推荐:https://item.taobao.com/item.htmt=t&id=671629736762
65—触摸屏控制步进电机位置实验:
硬件需求:PC机,PCM模块一个,microUSB线,5V/0.5A直流电源,12V/1A直流电
源,42步进电机1个,A4988步进电机驱动器一个,导线若干,24V电源一个,工 业触
摸屏(威纶MT506S)一个, TTL转RS232模块一个(或者使用MAX232芯片);
供电方式:12V电源供电给+5V电源,+5V电源输出的5V给PCM模块供电;
连接电路:如图101(触摸屏控制步进电机速度实验)
本实验使用steprundist指令,使用触摸屏来控制马达的运行位置。
触摸屏界面与触摸屏控制步进马达速度实验差别不大,但有几点差别:
1:多了一个移动距离输入按键;
2:最大速度范围是0到9999.99;
3:马达启动按键改为复归型按钮,也就是按下的时候输出1,放开之后变为0;
当使用steprundist指令使马达运行时,根据脉冲数的正负来确定马达的正反转,而
且脉冲数为相对脉冲数,即每次使用此指令启动马达,脉冲数都是从0开始计数,所以在
程序中使用了一个寄存器来保存马达当前的绝对位置。所以输入距离和显示距离都是绝
对位置脉冲数。
设置的截图;
名称 |
触摸屏元件 |
触摸屏设置地址 |
触摸屏设置字数 |
数值范围 |
小数点位数 |
对应开发板寄存器 |
移动距离 |
数值输入元件 |
4×5 |
2 |
-9999999~9999999 |
0 |
D2 |
加减速时间 |
数值输入元件 |
4×1 |
2 |
0-9999 |
1 |
D0 |
最大速度 |
数值输入元件 |
4×3 |
2 |
0-9999 |
2 |
D1 |
马达当前速度 |
数值显示元件 |
3×15 |
2 |
-9999~9999 |
2 |
D7 |
马达移动距离 |
数值显示元件 |
3×17 |
2 |
-9999999~9999999 |
0 |
D8 |
马达运行状态 |
数值显示元件 |
3×19 |
2 |
0-9999 |
0 |
D9 |
马达运行方向 |
数值显示元件 |
3×21 |
2 |
0-9999 |
0 |
D10 |
马达启动 |
位状态设定元件 |
0x33 |
M0 |
表4 触摸屏元件地址设置列表
图118 触摸屏移动距离输入元件地址设置界面,对应开发板整数寄存器D2
图119 触摸屏移动距离输入元件数值显示界面,对应开发板整数寄存器D2
图120 触摸屏最大速度输入元件数值显示界面,对应开发板整数寄存器D1
图121 触摸屏启动按键位状态设置元件设置界面,对应开发板中间寄存器M0
实验程序如下:
1 main
2 modbusrtuc 0 2 115200 s0 //初始化为从模式,本机站 0,使用串口2,
//波特率115200
//步进马达初始化0通道,电机转一圈3200个脉冲,步进马达运行停止后会置位Sn
3 stepinit 0 3200 s1
4 reset m0 //m0=0,此中间寄存器对应触摸屏的启动按键
5 while 1 //无限循环
6 if m0 //如果m0=1,表示马达启动
7 nbsp; mov d0 f19 //整数转换成浮点数,D0对应触摸屏的加减速时间输入
//按键,1位小数精度
8 nbsp; nbsp; div f19 10 f20 //除以10,为马达的加减速时间
9 nbsp; nbsp; mov d1 f19 //整数转换成浮点数,D1对应触摸屏的速度输入按键,
//2位小数精度
10 nbsp; nbsp; div f19 100 f21 //除以100,为马达的速度
11 nbsp; nbsp; sub d2 d8 d101 //设定位置减去当前位置,为马达要走的脉冲数,
//保存到D101启动通道0步进电机,d101为脉冲数,
//正表示正转,负表示反转,f20为
//加减速时间,f21是最大速度,F10保存马达运行D2个脉冲需要的时间,单位S;
12 nbsp; nbsp; steprundist 0 d101 f20 f21 f10
13 nbsp; nbsp; mov d8 d99 //把当前位置(绝对位置)保存到D99
14 nbsp; nbsp; reset m0 //清除m0,保证此段程序只运行一次
15 nbsp; endif
16 nbsp; stepgetspeed 0 f18 //获取马达速度到F18
17 nbsp; mul f18 100 f19 //马达速度是2位精度,乘以100
18 nbsp; mov f19 d7 //浮点数转换成整数,保存到D7,D7对应触摸屏的当前速度
//显示元件
19 nbsp; stepgetdist 0 D100 //获取马达移动脉冲数到D100
20 nbsp; add d100 d99 d8 //马达移动的脉冲数加上上次的绝对位置,为当前
//绝对位置
//获取马达运行状态到D9,0表示停止;1表示加速;2表示减速;3表示恒速运行,
//D9对应触摸屏的马达状态显示元件;
21 nbsp; stepgetstate 0 D9
//获取马达运行方向到D10,0表示正转;1表示反转,D10对应触摸屏的马达运行
//方向显示元件
22 nbsp; stepgetdir 0 D10
23 endwhile
24 endmain
下图122为触摸屏运行时的界面。先设置好各个参数,按下马达启动按钮,马达就
会运行到设置的距离停止。
图122 触摸屏真实界面
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!