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实现,以点动速度设置为例,代码如下所示:


|