研选课堂
HOME
研选课堂
正文内容
plc步进定位编程 「C#上位机」西门子1200PLC实用定位控制程序案例
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

「C#上位机」西门子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编程—

1.通过博图软件创建一个新的PLC项目,根据硬件型号插入新设备,这里为CPU 1214C DC DC DC

2.双击PLC的以太网口,设置IP地址,这里设置为192.168.2.210

3.双击CPU,在脉冲发生器PTO/PWM选项中设置信号类型为PTO,脉冲输出为Q0.0,方向输出为Q0.1

关注+后台私信:【资料】

立即免费领取24门PLC入门教程

4.新建一个工艺对象,名称为轴1,通过基本参数>驱动器,设置脉冲输出为Pulse1

5.通过扩展参数>位置限制,设置上下限位分别为I0.1和I0.2

6.通过扩展参数>回原点>主动,设置原点开关为I0.0

7.程序段1,调用MC_Power使能,各个引脚填写如图所示,其中Asix选择轴1

8.程序段2,调用MC_MoveRelative,各个引脚填写如图所示,该程序段主要用于执行相对运动

9.程序段3,调用MC_MoveAbsolute,各个引脚填写如图所示,该程序段主要用于执行绝对运动

10.程序段4,调用MC_MoveJog,各个引脚填写如图所示,该程序段主要用于执行前进和后退点动

11.程序段5,调用MC_Home,各个引脚填写如图所示,该程序段主要用于执行归零

12.程序段6,调用MC_Reset,各个引脚填写如图所示,该程序段主要用于执行复位功能

13.程序段7,调用MC_Halt,各个引脚填写如图所示,该程序段主要用于执行暂停功能

14.程序段8,调用MC_ReadParam,来读取相关参数,各个引脚填写如图所示,该程序段主要用于读取实时脉冲

关注+后台私信:【资料】

立即免费领取24门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、建立连接和断开连接:这里通过按钮实现建立连接和断开连接2个功能。

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

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

7、点动运动模式:设置点动运动速度,按住正向点动或者反向点动,实现电机的点动运动。

8、回原点模式:点击回原点,可以控制物体回到原点位置并停止。

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

(来源:网络,版权归原作者所有,侵删)

三菱PLC与威纶通HMI的步进定位控制程序就该这么写!太合适了

今天我们来看一个三菱FX3U与威纶通HMI之间的步进定位控制案例,要求做步进电机正反转点动运行、原点回归、正反转定位。

首先先看一下控制要求,假定:电机转一圈800个脉冲,电机转一圈0.2mm距离。

1、按下正转点动按钮,步进电机正转运行,按下反转点动按钮,步进电机反转运行。

2、在执行绝对定位之前,首先要执行一次原点回归指令,原点回归完成有指示灯信号。

3、原点回归完成后,再按下正转定位按钮,步进电机正转运行指定距离自动停止(距离的长度由绝对定位指令的脉冲数决定)。按下反转定位按钮,步进电机反转运行指定距离自动停止。

4、在紧急情况下,按下急停开关,PLC停止向步进驱动器发送脉冲信号,步进电机立即停止运行。

在设计PLC和HMI程序时的功能要求说明如下:

1、设计PLC和触摸屏程序,所有按钮/开关、回原点完成指示灯均为触摸屏控制。

2、在触摸屏上能够指定点动正反转频率,指定正反转定位频率和距离(注意:是距离,不是脉冲数)。此外,还要求能监控当前脉冲和当前距离的功能。

3、对于每次执行点动正反转、正反转定位,要求做资料取样和历史数据记录,时间为3天,可筛选日期查看数据记录。

4、丝杆设有正反转限位,当触及限位时需要报警,要求设计当前报警显示和历史报警记录。

5、要求添加用户等级密码功能,分技术员和管理员,技术员可监控程序、查看数据记录和报警记录,而管理员具有全部权限,还具有在用户管理页面重置密码的权限。

对于这样的一个控制,我们应该怎么去做?先做什么再做什么?下面我们来一一的看一下。

第一,设计PLC的控制程序,下载程序到PLC。

第二,设计HMI的过程画面。

第三,设置好通讯参数,下载HMI程序到触摸屏。

第四,将PLC和HMI用通讯线连接起来,成功通信上之后即可进行HMI通讯控制。

下面为FX3U PLC的控制程序:

下面为威纶通触摸屏的画面设计:

PLC和HMI程序就是这些,今天的内容,你看懂了吗?(本文为技成培训原创,作者:蔡慧荥,未经授权,不得转载,违者必究)

往期优秀文章回顾:

手机上能安装PLC编程软件吗?为什么?

相关问答

西门子plc控制步进电机定位时一般怎么编程?

西门子PLC控制步进电机定位时一般采用脉冲输出方式。具体编程步骤如下:定义步进电机相关变量,包括脉冲频率、脉冲个数、方向等。设置步进电机输出端口为脉冲...

三菱plc控制步进电机定位指令详解?

三菱PLC控制步进电机定位指令详解如下:1.指令格式:LDN、LD、LDP、LDF、LDFN、MOV、OR等。2.指令参数:-要控制的步进电机的轴号和方向;-要运行的步进...

编码器控制步进电机plc怎样编程?

以三菱PLC的脉冲+方向控制为例首先是接线:步进驱动器的脉冲端,分别接到PLC的脉冲输出端Y0,方向端接PLC任意输出端Y3;然后是编程:PLSY发脉冲即可[PLSYD100...

编码器怎么控制步进电机,如何用plc控制步进电机?

以三菱PLC的脉冲+方向控制为例首先是接线:步进驱动器的脉冲端,分别接到PLC的脉冲输出端Y0,方向端接PLC任意输出端Y3;然后是编程:PLSY发脉冲即可[PLSYD100...

用Plc控制步进电机旋转几圈,不用定位模块能实现么?

没有误差是什么。还是你可以接受多少误差。这个是关键。相对于伺服。步进电机就是战斗机。就是一般的伺服。如果惯性整定得不好。都会出现误差。何况没有编码...

三菱plc步进程序怎么写?

要写三菱PLC步进程序,需要先确定控制的对象和算法,然后使用三菱PLC编程软件编写程序。在编写程序过程中,需要设置控制模块的输入输出口和各种参数,分配内存,...

编码器怎么实现定位功能,用plc怎么设计梯形图?

严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠数控系统(或者PLC之类控制器)控制伺服或者步进电机来实现定位的,编码器好比人的眼睛,知道电机...PLC...

plc控制步进电机的转速和转向需要哪几步?

第一步,将步进电机的转速传感器与plc的模拟量输出模块采连接,同时将转向传感器与plc的开关量输出模块连接。第二步,在plc程序中定义两个变量,分别储存转速传...

西门子PLC编程步进控制指令?

那要是出现并行流程怎么办?把两步编到一步里?有一个操作要全程实时处理怎么办?要在每一步都加入该操作么?显然不是的。用步进指令进行PLC应用编程的优点...

三菱plc3u步进电机为什么要加定位模块?

加定位模块是为了实现步进电机的精确定位和运动控制。步进电机本身没有编码器或传感器来反馈位置信息,所以无法准确定位位置。而加上定位模块后,可以通过编码...

 pagefile  诗集传 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部