资讯详情

西门子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#开发需要完全建立自己的框架,实现底层代码,对开发者有更高的技术要求。

  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映射地址(参数地址)

4、ModbusServer程序编写

5、上位机UI界面设计

6、ModbusTCP通信库

实现上位机开发功能的核心在于ModbusTCP因为Modbus协议是公开和免费的,可以自己根据Modbus开发协议,也可以使用开源Modbus库,如NModbus等,有了ModbusTCP在通信库之后,我们可以更多地关注业务处理和逻辑处理。

7、ModbusTCP通信点表

上位机开发功能

1、首先创建一个Windows窗体应用项目名称为thinger.cn.MotionPro。

2.日志显示功能:日志显示ListView显示,绑定一个ImageList添加日志方法的参数包括日志等级和日志内容,用于区分信息、报警和错误。

3、自己开发ModbusTCP通信库或开源库应具有建立连接、断开连接、预置寄存器和读取寄存器的功能。

4.建立连接和断开连接:通过按钮建立连接和断开连接。

5、相对运动:设置相对运动速度和相对运动位置,实现电机的相对运动。

6、绝对位置运动:设置绝对运动速度和绝对运动位置,实现电机的相对运动。

7.点动运动模式:设置点动运动速度,按住正反点动,实现电机点动运动。

8.返回原点模式:点击返回原点,控制物体返回原点并停止。

9、运动停止、运动暂停、复位相关功能。

写在最后

总的来说,这个项目并不难,但知识面广,非常适合上位机初学者学习和练习。

标签: plc连接中间继电器控制电机

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台