西门⼦1200PLC实⽤定位控制程序案例
引⾔
本⽂是⼀篇综合性⽐较强的⽂章,从PLC输⼊输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusTCP通信协议及上位机编程实现最终控制,涉及知识⾯⽐较⼴,能够让我们很好地将所学知识结合起来。
开发平台
采⽤西门⼦TIA Portal V16编程软件编写运动控制程序,实现PLC(S7-1200系列:CPU1214C DC/DC/DC )对步进电机的控制,再通过编写ModbusTCP程序,将控制地址进⾏映射,从⽽⽅便上位机(VS 2019开发)与PLC进⾏通信,最终实现步进电机的运动⽅向、速度及距离的灵活控制。
涉及硬件:开关电源、S7-1200PLC、步进驱动器、步进电机、单轴模组、限位开关
涉及软件:TIA Portal V16、VS2019、ModbusPoll(⽤于测试通信)
硬件接线
PLC编程
上位机开发思路
为了便于操作,需要配⼀个HMI⼈机界⾯来进⾏使⽤。这个的HMI形式是⽐较多样化的,如触摸屏、组态软件等,但是这⾥,我们采⽤⽬前⽐较流⾏的⽅式——C#开发上位机,来供⽤户使⽤。C#开发上位机相对于传统的组态软件,各⾃都有⾃⼰的优缺点,主要体现在如下三个⽅⾯:
1. 功能限制:组态软件对于⼀些特定的需求或者逻辑,会有⼀定的局限性,使⽤上也受到软件本⾝的约束;C#开发上位机完全⾃主开
发,⼏乎不存在功能上的限制,并且扩展⽅便。
2. 技术要求:组态软件最⼤的优势在于⽅便,因为它本⾝都集成了⼀些通⽤协议和元件,只需要按照使⽤说明进⾏组态配置即可;C#开
vs编程软件发需要完全⾃⼰搭建框架和实现底层代码,对开发者的技术要求会更⾼⼀些。
3. 价格成本:组态软件需要按套、按点位收费,意味着每个项⽬⽆形中都有⼀个基础成本;C#开发上位机⾃主开发,不需要⼆次授权费
⽤,并且开发⼀套之后,可以快速应⽤到其他项⽬中。
采⽤C#上位机开发,⾸先需要考虑的是通信问题。西门⼦S7-1200⽀持很多种不同的通信协议,包括S7、ModbusTCP、TCP/IP、UDP、OPC等,从开发成本上来说,我们优先考虑S7和ModbusTCP,对于S7和ModbusTCP通信协议,⽐较⼀下两者的优缺点:
1. S7协议为西门⼦内部协议,协议本⾝不公开,需要调⽤或者⾃⼰开发通信库,使⽤S7通信协议需要勾选CPU中的允许来⾃远程对象
的PUT/GET通信访问。
2. ModbusTCP为公开、免费协议,可以⾃⼰开发通信库或者使⽤开源库,使⽤ModbusTCP通信协议需要编写⼀定的PLC程序来实现
地址映射。
从公开免费和使⽤范围的⾓度来考虑,这⾥采⽤ModbusTCP通信协议,因为你学会了ModbusTCP,意味着市场上的⼤部分仪表、PLC通信你都可以搞得定,PLC程序编写如下所⽰:
1、创建DB块
这⾥⾸先创建⼀个DB块,⾥⾯包含了常⽤的⼀些操作和参数设置,值得注意的是,由于Modbus保持型寄存器的Bit位操作⽐较⿇烦,因此这⾥我们统⼀使⽤Word类型来代替Bit。
2、Modbus地址与PLC地址的映射(控制位)
3、Modbus地址与PLC地址的映射(参数地址)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论