工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 工控编程 查看内容

【附源码】基于ModbusTCP实现西门子1200PLC定位控制案例

2020-8-27 22:00| 发布者: gkket| 查看: 1| 评论: 0|原作者: gkket

摘要: 1、引文上一篇文章中,我们主要阐述了《西门子1200PLC实用定位控制程序案例》的接线部分及PLC程序部分。【C#上位机】西门子1200PLC实用定位控制程序案例 本篇主要针对上位机部分开发进行详细阐述。2、项目通信变量表 ...
1、引文上一篇文章中,我们主要阐述了《西门子1200PLC实用定位控制程序案例》的接线部分及PLC程序部分。【C#上位机】西门子1200PLC实用定位控制程序案例
本篇主要针对上位机部分开发进行详细阐述。2、项目通信变量表
Modbus地址PLC地址变量名称备注说明40001DB1.DBW0正向点动1=True,0=False40002DB1.DBW2反向点动1=True,0=False40003DB1.DBW4相对运动1=True,0=False40004DB1.DBW6绝对运动1=True,0=False40005DB1.DBW8回原点1=True,0=False40006DB1.DBW10系统复位1=True,0=False40007DB1.DBW12系统暂停1=True,0=False40008-40009DB1.DBD14点动速度浮点型40010-40011DB1.DBD18相对速度浮点型40012-40013DB1.DBD22相对距离浮点型40014-40015DB1.DBD26绝对速度浮点型40016-40017DB1.DBD30绝对位置浮点型40018-40019DB1.DBD34实时位置浮点型

3、上位机功能开发
  • 首先创建一个Windows窗体应用项目,项目名称为thinger.com.MotionPro,并按照功能完成UI界面的搭建。


  • 自己开发ModbusTCP通信库或者使用开源库,该库应该具备建立连接、断开连接、预置寄存器、读取寄存器的功能。这里采用开源Modbus通信库NModbus4,通过NuGet下载安装NModbus通信库。


  • 建立连接和断开连接:这里通过按钮实现建立连接和断开连接2个功能,代码如下所示:


  • 参数实时显示:需要实时显示的参数包括点动速度、相对速度、相对距离、绝对速度、绝对位置以及实时位置,因此需要开启一个定时器实时读取从40008开始的12个寄存器,读取完成之后再解析成浮点型数据,代码如下所示:


  • 相对位置运动:设置好相对运动速度和相对运动距离,实现电机的相对运动,相对运动只需要给相对运动变量40003写1再写0即可。


  • 绝对位置运动:设置好绝对运动速度和绝对运动位置,实现电机的绝对运动,绝对运动只需要给绝对运动变量40004写1再写0即可。


  • 点动运动模式:设置点动运动速度,按住正向点动或者反向点动,实现电机的点动运动,代码如下所示:


  • 回原点模式:点击回原点,可以控制物体回到原点位置并停止,回原点只需要给回原点变量40005写1再写0即可。
  • 运动暂停、复位相关功能。
  • 参数设置:需要设置的参数包括点动速度、相对速度、相对距离、绝对速度、绝对位置,这里通过将设定的浮点数转换成ushort数组,再通过调用WriteMultipleRegisters实现,以点动速度设置为例,代码如下所示:





路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

热门文章

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 || 沪公网安备 31010602005455号 )|网站地图

GMT+8, 2020-8-27 22:00 , Processed in 0.047579 second(s), 44 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部