OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5592|回复: 5

分享自己做的modbus协议步进电机控制器,带加减速

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-5-20
在线时间
12 小时
发表于 2016-12-28 15:09:52 | 显示全部楼层 |阅读模式
了解stm32后感觉功能太强了,本行不是搞单片机的, 就想业余弄个东西试试手,工作是PLC编程的,一般PLC只有2个高速脉冲输出,当需要控制3个电机时就有点尴尬了,就弄个简单的发脉冲的吧,
由PLC或上位机通过modbus协议发出脉冲个数,和脉冲频率,可以设定加减速时间(梯形加速) ,最高50K  
     由TIM3的溢出值确定频率,再有该值的一半作为PWM输出,加减速时每个周期都更新频率,起始频率为设定频率的1/10, 加减速时每次进中断都加或减 等差数列值 和脉冲个数加1,如果脉冲到了,就停止定时器  .缺点,频繁的进入中断, 用定时器算了下TIM3中断函数大概需要240个周期(修改下中断函数应该可以减少),加上cpu压栈取中断的12个周期,估计需要4us,设计2路最高频率50K也满足了.刚开始准备每次改变加减速时间时,计算好每次的值放在数组,由DMA传输,就不要每次都中断了,仔细一算数组占用空间太大了,
  
  程序只是分享下思路,很多细节还没考虑,代码也有点凌乱,自己的一共3个文件,main.c modbus.c modbus.h    脉冲相关的都在main中,modbus中串口相关的,环境keil518
欢迎指正交流
基于C#的上位机软件还没做好,1个月内补充上传

用modbus 03读寄存器,06写单个寄存器,, 暂时只实现这2个功能码
脉冲个数       有符号(DBuf[0],低16位,DBuf[1]高16位)
脉冲频率        DBuf[2]
加速时间         DBuf[4]
启动             DBuf[10]   非0启动,启动后自动清零

入门stm32时,看了很多原子的资料,整理的非常好,没买过他们产品也可以下载,非常感谢,


stm32发脉冲12_25.zip

4 MB, 下载次数: 1701

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-12-28 16:28:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

9130009816 该用户已被删除
发表于 2016-12-29 09:43:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-5-20
在线时间
12 小时
 楼主| 发表于 2016-12-29 13:55:56 | 显示全部楼层
9130009816 发表于 2016-12-29 09:43
你好!这个和STM32F4系列的modbus 有区别吗 ?我最近做STM32F4系列modbus控制步进电机,功能码要是实现03  ...

modbus协议是固定的,不同的芯片简单的修改及可以用,
stm32_F4系列暂时还没的没用过,看资料是主频更高,资源更多,
实现肯定可以的,我这个简单的修改在stc51和AVR上都可以用,
需要占用一个定时器,判断一组数据接收完成

或者我可以帮你做modbus协议部分

回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
384
金钱
384
注册时间
2016-5-31
在线时间
111 小时
发表于 2021-3-28 09:15:16 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2021-3-23
在线时间
23 小时
发表于 2021-3-29 17:30:38 | 显示全部楼层
楼主知道单片机如何采集PLC数据吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表