浔之漫智控技术(上海)有限公司
西门子模块代理商

西门子总代理西门子PLC总代理 西门子模块代理商

西门子总代理西门子PLC总代理 西门子模块代理商

西门子总代理西门子PLC总代理 西门子模块代理商

西门子总代理西门子PLC总代理 西门子模块代理商

浔之漫智控技术(上海)有限公司 

本公司销售西门子自动化产品,全新原装,质量保证,价格优势

西门子PLC,西门子触摸屏,西门子数控系统,西门子软启动,西门子以太网

西门子电机,西门子变频器,西门子直流调速器,西门子电线电缆

我公司大量现货供应,价格优势,品质保证,德国原装进口

西门子PLC工程师基础用户程序设计

1.程序设计前期准备工作

  在正式进行用户程序设计前,首先要做一些前期准备工作,包括绘制IO地址分配表,绘出PLC配线图,画出全部控制系统的电气原理图。

  PLC用户程序的设计方法很多,除了上面所介绍的转换技术法外,比较通用的是程序流程图设计法,其他还有组合逻辑控制设计法,步进顺控设计法和经验设计法等。但这些方法都具有一定的局限性,程序设计因人而异,即使采用同一种编程方法,所设计的用户程序也会相差很大。因此,初学者追求的是有自己的思路,根据自己的思路所设计的程序完全能满足控制要求,不要去追求什么程序设计技巧、Zui优程序,等等。

  2.程序设计的算法和程序流程图设计法

  什么是算法,算法就是解决问题的思路。不管是工程控制还是数据处理,在设计程序前,总是要对问题进行分析,并找出解决问题的方法步骤,这个方法步骤就是算法。例如,黑板上有十个数,要找出Zui大值,有人说我一眼就看出某数是Zui大的数,这个“一眼看出”不是算法。有人说我是一个数一个数进行比较,比较时总是保留大的数,舍去小的数,Zui后那个数就是Zui大的数,这种一一比较的方法就是算法。因此,在PLC 程序设计中(其他程序设计也一样),算法不但是一种思路,还应该是解决问题的具体步骤,而PLC程序则是应用指令完成算法的具体体现和成果。所以,一般来说,设计程序前先要思考算法,正如写文章前先要构想文章的大纲一样。

  算法是解决问题的思路,不同的人可能思路会不完全相同。也就说,一个问题的思路可能有多种,形成的算法也会有多种。同一个问题有多种算法,有多种程序设计都是正常的,不要轻易说别人设计的程序不对。

  一个问题可以有多种算法,但这多种算法还是可以比较的,比较的标准涉及对算法进行评价和优化的问题。具体来说,一个算法如果使用较少的硬件资源,执行时间较短,这种算法就较好。

  PLC 是解决实际控制任务的,而针对控制任务的算法是解决问题的前提,可以说,对PLC的硬件知识,编程知识的学习都是有限的,而对算法的学习则是无形的、无限的。算法不但涉及PLC知识,还涉及控制任务的相关工艺工程知识、大量的数学、物理等专业基础知识,试想一个连方程是什么都不知道的人,能有解一次方程的算法吗?

  有了算法,还必须用PLC指令编写成PLC程序。在编写程序前,首先要把算法表示出来。

  算法的表示方法很多,Zui重要的是表达方式能表示算法的步骤,以便程序设计时,能很快地根据算法的步骤编写出程序。这里介绍一种常用的算法表示方法——程序流程图。在语言里,程序流程图又叫程序框图,用框图来表示执行的内容和程序的流转,用带箭头的连线表示程序执行的步骤和流程。图5.5-1 表示了程序流程图中的两种组成图框——运算框和转移框。


程序流程框图


  图5.5-1 程序流程框图

  运算框表示算法在该步骤要执行的内容,转移框则表示程序到这一步要根据框中所表示的运算结果进行程序转移。如图中若A>B则转向Y,A≤B则转向N。连线箭头表示算法的步骤流程,每一个算法都可以先画出由运算框和转移框所组成的程序框图,然后,根据程序框图选用适当的指令编制出梯形图程序。

  3.组合逻辑控制设计法

  逻辑设计法是将数字电子技术中的数字电路逻辑设计方法移植到PLC梯形图程序设计中。梯形图和继电控制线路一样,其输出线圈和输入触点均是只有两种状态的元件,因此,用变量取值为“0”和“1”的逻辑代数也完全适用于PLC梯形图的设计。这就是梯形图逻辑设计法的依据。逻辑设计法有很大的局限性,它仅适用于组合逻辑控制系统。

  什么是组合逻辑控制当逻辑控制的输出状态仅仅取决于输入的当前值状态,而与输入、输出的以前状态无关的逻辑控制称为组合逻辑控制。组合逻辑控制的特点是输出状态仅与当前输入状态有关,其结果是唯一的,且其转换马上实现。其逻辑表达式简单易懂,根据逻辑表达式可直接设计出梯形图,逻辑设计法不适用于时序逻辑控制。

  组合逻辑控制设计方法的步骤:

  (1)根据控制要求,明确哪些是输出变量,哪些是输入变量。

  (2)根据控制要求,绘制输入、输出关系的真值表。真值表必须考虑输入变量的全部状态组合。

  (3)根据真值表写出输出与输入关系之逻辑代数表达式。

  (4)根据逻辑代数表达式直接设计梯形图程序。

  可以看出,这种设计法的另一个局限是必须掌握一定的数字电路和逻辑代数知识,这对于没有系统学习过这些知识的人员来说,有一定的困难。

  4. 步进顺序控制设计法

  在工业控制中,除了模拟量控制之外,大部分控制都是一种顺序控制。所谓顺序控制,就是按照生产预先规定的顺序,在各个输入信号的作用下,根据内部状态和时间的顺序,在生产过程中各个执行机构自动、有序地进行操作。

  将逻辑控制看成顺序控制的基本思路逻辑控制系统在一定的时间内只能完成一定的控制任务。这样,就可以把一个工作周期内的控制任务划分成若干个时间连续、顺序相连的工作段,而在某个工作段,只关心该工作段的控制任务和什么情况下该工作段结束,然后转移到下一个工作段就行了。

  三菱FX系列PLC专门为顺序控制开发了步进指令STL,利用步进指令STL可以非常方便地设计顺序控制程序。在本书第6章专门对 STL 步进指令顺序控制程序进行了详细讲解,这里不再阐述。

  步进顺序控设计法的优点程序设计思路非常清晰、容易理解和掌握,不需要过多过深的知识。对初学者来说,是Zui容易接受、学习和掌握的梯形图程序设计方法。

  5.经验法

  经验设计法是指用设计继电控制电气原理图的经验方法来设计比较简单的开关量逻辑控制梯形图,即在掌握一些基本环节设计的基础上,充分理解实际的控制要求,将实际控制要求分解为各个基本环节所能解决的小任务,然后,根据控制要求不断地修改自己的设计,直到达到符合控制要求的梯形图为止。这就如同小学生作文,先阅读范文,再模仿范文写作,Zui后达到独立写作的目的。学习PLC程序设计也一样,可以先尽可能多地收集一些典型的小程序加以学习,然后模仿编写或对典型程序加以改动后移植到自己的程序中,Zui后经过不断修改变成自己独立完成的程序。

  经验法没有普通的规律可循,设计所用的时间、设计质量均与设计者经验有很大的关系,具有很大的试探性和随意性,所设计的程序是因人而异,不具有唯一性。经验法是初学者特别是电工技术人员学习PLC程序设计比较好的切入点。经验法要求设计者对基本设计环节(启保停、延时、自锁、连锁与互锁等)能够理解、掌握和运用。经验法的另一个特点是程序可能要经过多次反复调试、修改才能完成,而实际上这种反复调试修改也给设计者积累了经验。

5fe74cb143e0e8419a3535d340739ff - 副本 - 副本 (2).jpg

西门子1200PLC实用定位控制程序案例引言

本文是一篇综合性比较强的文章,从PLC输入输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusTCP通信协议及上位机编程实现Zui终控制,涉及知识面比较广,能够让我们很好地将所学知识结合起来。

开发平台

采用西门子TIA Portal V16编程软件编写运动控制程序,实现PLC(S7-1200系列:CPU1214C DC/DC/DC )对步进电机的控制,再通过编写ModbusTCP程序,将控制地址进行映射,从而方便上位机(VS 2019开发)与PLC进行通信,Zui终实现步进电机的运动方向、速度及距离的灵活控制。

涉及硬件:开关电源、S7-1200PLC、步进驱动器、步进电机、单轴模组、限位开关

涉及软件:TIA Portal V16、VS2019、ModbusPoll(用于测试通信)

硬件接线



PLC编程


 


 



上位机开发思路

为了便于操作,需要配一个HMI人机界面来进行使用。这个的HMI形式是比较多样化的,如触摸屏、组态软件等,但是这里,我们采用目前比较流行的方式——C#开发上位机,来供用户使用。C#开发上位机相对于传统的组态软件,各自都有自己的优缺点,主要体现在如下三个方面:

功能限制:组态软件对于一些特定的需求或者逻辑,会有一定的局限性,使用上也受到软件本身的约束;C#开发上位机完全自主开发,几乎不存在功能上的限制,并且扩展方便。

技术要求:组态软件Zui大的优势在于方便,因为它本身都集成了一些通用协议和元件,只需要按照使用说明进行组态配置即可;C#开发需要完全自己搭建框架和实现底层代码,对开发者的技术要求会更高一些。

价格成本:组态软件需要按套、按点位收费,意味着每个项目无形中都有一个基础成本;C#开发上位机自主开发,不需要二次授权费用,并且开发一套之后,可以快速应用到其他项目中。

采用C#上位机开发,首先需要考虑的是通信问题。西门子S7-1200支持很多种不同的通信协议,包括S7、ModbusTCP、TCP/IP、UDP、OPC等,从开发成本上来说,我们优先考虑S7和ModbusTCP,对于S7和ModbusTCP通信协议,比较一下两者的优缺点:

S7协议为西门子内部协议,协议本身不公开,需要调用或者自己开发通信库,使用S7通信协议需要勾选CPU中的允许来自远程对象的PUT/GET通信访问。

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、运动停止、运动暂停、复位相关功能。

写在Zui后

这个项目整体来说难度不是很大,但是涉及的知识面比较广,非常适合上位机初学者进行学习和练手。


展开全文
优质商家推荐 拨打电话