PLC通信调度——应用于32轴运动控制系统的一个实例 点击:504 | 回复:14



夏日野草

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 19:51:58
楼主

PLC串行通信,相信各位编程者都经常遇到,简单的通信任务应该不成问题。但如果是复杂频繁的通信,那么处理起来就不大容易了。

本帖以一个实例为基础简单讲解通信调度实现的原理,希望能对大家处理类似通信问题时有所帮助。实例中的主控设备是三菱PLC-FX3U,从设备是8台HSEN通用型4轴定位模块共32轴,PLC通过RS485和定位模块联系,通信协议是MODBUS-RTU。


正在下载,请等待……
下载附件需0积分!




夏日野草

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 19:53:31
1楼

这类通信虽说遵循某种通信协议,貌似只是普通的数据读写,但实质并非如此。普通的数据读写或控制,例如变频器的控制,除了运行参数的读写外,还包括运行、停止、改变运行速度等指令发送,只要通信正常完成,控制过程也就结束了。而定位运动的控制不只是运动指令的发送,还包括定位单元运动状态的监测,比如最为常见的定位控制过程——“当前的定位运动是否已完成,如果完成,则进行下一个动作”。‘定位运动是否已完成’‘温控系统的温度是否已到设定值’‘气压是否已达到工艺要求’等等这类信息如果是通过串行通信获得的,那主控系统就必须不断地向从设备查询。如果从设备数量不多,解决这样的问题可能难度不是很大,但如果如上面所述的这类实例,大量的运动指令发送,再加上轴运行状态的获取,如果只是以通常的编程方式来解决这样的问题,可能是思绪万千、困难重重。为此有必要考虑用一种新的思路来解决这类问题。这就是本帖提出的通信调度这概念。


夏日野草

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 19:56:00
2楼

百度百科对调度算法的解释是:操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源,这就是调度。本帖的通信调度有点类同于定义中的操作系统,它管理着PLC的串行通信设备这一有限资源,按照一定的原则选择通信请求来占用资源。因此,本实例的通信调度要实现的首个功能是合理有序地安排通信任务。在有限的资源下,如何避免通信冲突是通信调度一个非常重要的功能。此外,其他要实现的功能有把通信数据处理成符合通信协议的数据格式;组织发送;响应信息的接收;通信过程中异常情况的处理(例如对象设备没有响应,接收超时,从设备报告收到的数据有误,校验错误等等);把收到的数据处理成一定格式存放在指定地址。最后还有一个重要的功能就是如上文所说的获取用户关心的信息,这个获取过程并不需要用户提出请求,而是通信调度根据设置,在闲暇时自动发起通信,收集指定的信息(例如各轴的当前位置、当前的运动状态,硬件信息等等),供用户随时调用。


夏日野草

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 19:58:54
3楼

看下图一个使用通信调度的简单例程。例程的第一部分是一个相对直线插补的运动指令,这一指令的发送,只要设置好相关的运动参数,并置位“执行直线插补”即可,余下的事就交予通信调度处理了。例程的第二部分是在指令信息发送完成后,对指令的执行情况“完成直线插补”进行监测,“完成直线插补”这信息就是通信调度自动采集的。例程的第三部分就是在程序中调用通信调度这功能块。从这例程

我们可以看到,在使用通信调度后,我们的编程基本上就不用考虑通信的问题了程序简洁明了,思路清晰。

夏日野草

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 20:02:37
4楼

有利必有弊,就像单片机下的编程,是裸奔还是在操作系统下编程,裸奔的程序短小精悍,占用资源少,执行速度快,但复杂的程序编程就比较不易,而在操作系统下编程则刚好相反,这就要看你的取舍了。

从例程中我们可以看到,除了通信调度被包装成功能块外,相对直线插补这一运动指令也被包装成功能块,其实,不仅运动指令,所有常用的MODBUS操作码都可以被包装成功能块,见下图FB列表截图。


夏日野草

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2007年5月06日
发表于:2018-02-20 20:11:16
5楼

下图为通信调度执行的流程图,该流程图明示了通信调度和其他功能块之间的消息传递流程,附件中的文档第五章对通信调度有的详细解释,如有兴趣可下载看看。

sherman1688

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2018年2月22日
发表于:2018-02-22 15:46:39
6楼

很有水平的说明,因为新手还下载不了

Cheish

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 119回
  • 年度积分:4
  • 历史总积分:230
  • 注册:2009年3月08日
发表于:2018-02-22 16:01:00
7楼

是文档吗?

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 78回
  • 年度积分:0
  • 历史总积分:87
  • 注册:2001年8月08日
发表于:2018-03-09 21:03:47
8楼

谢谢分享。。。

夜叶曳

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 68回
  • 年度积分:46
  • 历史总积分:780
  • 注册:2016年3月02日
发表于:2018-03-10 18:53:34
9楼

大神作品啊,这个必须要好好研究一下。真的非常感谢分享!

夜叶曳

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 68回
  • 年度积分:46
  • 历史总积分:780
  • 注册:2016年3月02日
发表于:2018-03-10 18:53:43
10楼

大神作品啊,这个必须要好好研究一下。真的非常感谢分享!

alou19850710

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 47回
  • 年度积分:0
  • 历史总积分:1170
  • 注册:2018年1月05日
发表于:2018-03-16 14:26:10
11楼

大神作品啊,这个必须要好好研究一下。真的非常感谢分享!

silky_56

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1828回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2003年8月15日
发表于:2018-03-19 14:22:44
12楼

谢谢楼主无私奉献

MENGCHA

  • 精华:0帖
  • 求助:6帖
  • 帖子:91帖 | 703回
  • 年度积分:412
  • 历史总积分:933
  • 注册:2003年9月08日
发表于:2018-11-23 18:48:30
13楼

资料很不错,赞,下载了看看

我的水平有限

  • 精华:0帖
  • 求助:5帖
  • 帖子:20帖 | 186回
  • 年度积分:139
  • 历史总积分:416
  • 注册:2010年7月06日
发表于:2018-12-01 10:46:49
14楼

看起来很不错


热门招聘
相关主题

官方公众号

智造工程师