PLC编程到底是啥?看电气大神讲PLC,膜拜!真是一针见血
PLC常见的用途是替代电气控制中的继电器逻辑控制电路。例如电机控制、变电站市电进线互投和自备发电机起停控制、过程控制DCS操控系统和楼宇消防系统控制等等。一般的城市居民小区高层建筑的水压控制,就是采取PLC配套变频器执行水泵操控的。
PLC更重要的用途是构建数据交换系统,它把现场总线变换为工业以太网,实现现场设备与后台的数据交换,以及接收和执行遥控命令等等。
在工业、民居、国防、交通(地铁、港口、民航)、银行和移动的数据中心中都大量使用PLC,由此可见PLC的用途之广。
PLC的硬件系统简介
图1:ABB的AC500系列PLC
图1的左侧是通信接口模块,它能实现PLC的通信数据和网络数据交换。向右显示了"AC 500"的是PLC的主体,即CPU模块。再往右是开关量输入/输出模块以及模拟量输入输出模块。
由此我们看到,PLC类似于一个单片机系统。事实上,PLC就是单片机智能化系统,但它的可靠性和稳定性非常高,远远超过了一般的单片机。
在工业环境下的电磁骚扰强烈,所以PLC必须要满足国家标准对电磁骚扰的要求。有关电磁骚扰的国家标准如下:
图2:国家标准中对工业条件下电磁骚扰的测量方法和要求
PLC抵御电磁骚扰的硬件措施包括电源隔离、开关量输入接口采取光电隔离、模拟量也采取光电隔离等措施。输出接口的电磁骚扰会弱一些,但也需要采取一定的措施,包括OC门和继电器接口等等。
为了提高PLC的可靠性,在重要场合还采取主PLC与从PLC冗余配套工作的措施,见下图:
图3:PLC的冗余措施
我们原来在变电站电力监控系统中用工业控制计算机作为中间层面的数据处理中心,但工业控制计算机存在电源故障、硬盘故障,抗电磁骚扰能力弱,后来就淘汰了,转而使用PLC作为数据处理中心。下图是《低压成套开关设备的原理及其控制技术》中的插图:
图4:图中的CCU就是PLC构建的通信管理中心
在图4中,既有利用PLC执行低压进线、母联和自备发电机间的备自投系统,也有执行数据交换的PLC系统。
PLC的软件系统
学过初级编程知识的人都知道循环语句。一旦程序进入死循环,程序事实上就是死机了。对于PLC来说也是如此。一旦PLC进入死循环,它的接口会复位,被控制量会发生严重问题。因此,PLC的程序语句是一条条顺序执行的,一直运行到最后一条再返回,不会出现死循环。即便是转移指令,只要转移条件满足就转移,否则跳过转移程序段继续执行。
这就是PLC软件系统的可靠性很高的原因之一。
我们看下图:
图5:PLC的模块化编程语言
图5摘自北京地铁工程的PLC程序局部。
PLC程序格式有两种,其一是梯形图格式,其二是模块化编程语言格式。对于较复杂的PLC程序,一般都采用模块化编程语言来编写。不管是梯形图也好,是模块化编程语言也好,它们都必须符合国际电工委员会IEC61131-3标准的要求。
下图是用于控制电机实现星三角转换的程序:
图6:电动机星三角转换的PLC程序局部
图6中的STEP2和STEP3就是转移程序端。如果不符合条件,程序会跳过转移程序段执行。
最有意思的是PLC的PID程序模块,很有使用价值。
给大家的建议
学习PLC技术,刚开始大都以梯形图为主。实际上,PLC刚开始学习时无非就是控制十字路口红绿灯等等,真正的PLC技术绝不仅仅在于此,只要做过一个工程,对PLC的认知就会大幅提升。
西门子PLC只能使用WINCC吗?组态王也很好用,实例详细讲解!
本示例通过一个简单的计数器程序说明相关硬件和软件的配置和简单使用。
组态王编写的人机界面可以控制并监测PLC的寄存器状态。左上角的按钮可以控制M0.0的关断,从而可以控制计数器的复位,计数器可以对左下角的按钮按下次数进行计数,计数值可以直接显示,也可以通过仪表显示。
硬件配置方法:我们选用的通信方式是基于以太网卡的TCP/IP协议通信
所以,我们直接使用网线将S7-1200和配置有网卡的计算机的以太网接口相连
TIA Portal与S7-1200的软件配置
1 使用博途组态S7-1200并编写程序,编写完成之后编译并下载
2 PLC与组态王通过以太网的方式通信的设置:
A、确认计算机中安装有以太网卡,并与PLC 连接到同一网络中(直接通过网线直连)。
B、通过编程软件设定IP地址和子网掩码,并下传到PLC中如IP地址(192.168.0.1)、子网掩码(255.255.255.0)。
C、为计算机设定IP地址和子网掩码,如IP地址(192.168.0.110)、子网掩码(255.255.255.0)。
D、使用ping 命令,保证能ping 到PLC 站。
3 PG/PC 接口配置,通信测试,以检查运行组态王的计算机是否和PLC正常通信
4 测试正常之后,即可在组态王开发项目
1 编写程序并下载
计算机与S7 1200PLC之间的通信是基于以太网卡的TCP/IP协议通信,我们可以查看组态的PLC设备的TCP/IP地址,默认为192.168.0.1,
编写、编译并下载程序
编写、编译并下载程序
在右侧的指令窗口中可以拖入进基本指令
编写、编译并下载程序,编写好的程序如下图:
可在PLC变量表里面为变量命名
在线监控可在线监控PLC寄存器状态
2 PLC与组态王通过以太网的方式通信的设置:
1、确认计算机中安装有以太网卡,并与PLC连接到同一网络中(直接通过网线直连)。
2、通过编程软件设定IP地址和子网掩码,并下传到PLC中如IP地址(192.168.0.1)、子网掩码(255.255.255.0)。 此步骤已经在博途中组态PLC的过程中完成了,通过PLC属性查看以太网地址。
3、为计算机设定IP地址和子网掩码,如IP地址(192.168.0.110)、子网掩码(255.255.255.0)。
这里以Win7系统为例
打开网络共享中心,双击更改适配器选项
修改IP地址
修改IP地址
4、使用ping 命令,保证能ping 到PLC 站。
在开始菜单“搜索程序和文件”中输入 cmd 指令,进入DOS命令窗口
在DOS 界面中输入命令:ping 192.168.0.110
然后回车。注意:在ping 和地址之间有一个空格,如下图所示。
观察DOS 界面中的ping 指令返回值。如包括time=1ms 或time<1ms 及TTL 等于某个数值,
且Lost=0,即ping 指令返回值正常,表明以太网连接正常。如下图所示。
如果连接不正常,可能如下图所示,ping 指令返回值显示timed out 或Lost 值不为0,
表示本机IP 地址和目标IP 地址连接不通,建议检查一下连接线缆及两台计算机的IP 地址设置。
(3)PG/PC 接口配置,通信测试,以检查运行组态王的计算机是否和PLC正常通信
1.打开Set PG/PC Interface。
在操作系统中点击“Start”菜单,打开“Control Panel”选项,在控制面板中,选中“大图标”显示,即可找到Set PG/PC Interface,如图。双击打开。
如图,在 Access Point of the Application(应用程序访问点)的下拉列表中选择 <Add/delete>,输入名称。
在 Interface Parameter Assignment Used 中点选Realtek PCIe FE Family Controller.TCPIP.1(注意:应根据运行计算机实际工作的网卡名进行选择,务必选择不带Auto 的),然后Access Point of the Application 内显示“CP-TCPIP - Realtek PCIe FE Family Controller.TCPIP.1 即可。
(4)通信测试,以检查运行组态王的计算机是否和PLC正常通信
我们的通信方式是TCP/IP,在组态王中定义的IO设备应该使用TCP/IP协议
注意设备地址的填写,冒号前面是我们在博途组态的PLC的地址,冒号后面为S1200的默认槽号,为0。为:192.168.0.1:0
通信测试,以检查运行组态王的计算机是否和PLC正常通信
然后使用组态王KingVIEW 6.55组态人机界面
(1)定义I/O设备:前面在测试设备的过程中,我们已经定义好了IO设备,此处略去
(2)定义I/O变量
根据程序,选择需要检测和控制的寄存器变量,在组态王数据词典中定义相应的IO变量。
先为复位开关M0.0建立一个IO变量
我们为其他寄存器定义好的I/O变量如下图:
其中,变量USB_Com用来显示组态王与PLC的通信状态,以帮助我们判断是否通信正常。
关闭(0)表示通信正常,打开(1)表示通信异常,也可以自行更改。或者可以在组态王的产品帮助文档中输入CommErr以查看使用说明。
全部建立好的变量如下图:
(3)新建并组态画面
现为复位开关M0.0以及计数M0.1组态开关按钮
现为复位开关M0.0关联PLC的M0.0
现为复位开关M0.0关联动作:鼠标按下时接通,弹起时断开。
同理我们为M0.1关联它的变量以及动作。
组态一个指示灯关联输出Q0.2,以便直观地观察复位状态
组态好的按钮和指示灯可以通过颜色显示状态之外,还可以通过工具箱的文本用“打开”或者“关闭”的文本标识状态。
为建立好的文本关联变量
使用同样的方法为按钮M0.1以及指示灯Q0.2建立文本并关联变量。
同时,我们再建立一个文本,关联计数器的计数值,以便在人机界面中查看计数值。
同时,我们也可以从图库中选取一个仪表,用刻度显示计数值。
此外,我们再建立一个文本并关联通信状态变量USB_Com,以便我们在人机界面运行时可以判断通信是否正常。
(4)保存并运行组态好的人机界面
可同时打开博图的在线监控,组态王的人机界面有指令时,博途也可以同时监测到寄存器的状态变化
相关问答
西门子s7-300/400系列的plc有哪些编程软件-ZOL问答
不过现在西门子主推TIA(博途),这个新的软件同时支持S7-1200和S7-1500等新系列的PLC系列型号,但这个TIA软件包体积很大,几十GB,而且对电脑的硬件配置要求也相对较...
西门子plc支持c语言编程吗?
是的,西门子PLC(可编程逻辑控制器)支持C语言编程。除了传统的梯形图和函数块图编程语言之外,西门子PLC还支持结构化文本编程语言(SCL),它是基于C语言语法...
iec编程平台是什么?
iec编程软件平台是旨在规范可编程控制器(ProgrammableController,简称PLC)编程语言的国际标准,经过十多年的发展和完善,已被广大PLC使用者和生产厂商所认可和...
plc未来能用c编程吗?
PLC有大型小型分别,一般小型机是不行,例如三菱FX系列,但是三菱大型PLCQ系列是可以的,Q有专用的C语言模块,西门子S7-300,400也是可以。而且C语言其实很难使...
plc能用C语言编程吗?
可以因为PLC(ProgrammableLogicController)使用一种特殊的编程语言LadderLogic,不过现在大部分PLC也支持C语言编程,C语言编程是PLC的应用范围不断扩大的...
信捷PLC的C语言功能怎么编程?
信捷PLC的C语言编程步骤如下:打开信捷PLC的编程软件“XDPPro”,就会看到在左侧目录树下,有“函数功能块”这一栏。通过在上面单击右键,就可以添加功能块。第...
WIN7到底可不可以安装三菱PLC编程软件?网上说能装!我的是win...
当然可以装,你百度,三菱中国,点三菱电机自动化,里面有正版软件,我刚装过,正在学习有用(0)回复oliver1223445win764位系统安装三菱plc是不能运行的,下个虚拟...
C语言跟PLC在本质上有什么区别?是不是说PLC是C语言里面的一种?
估计你知道C语言是什么。PLC全称ProgrammableLogicController,可编程逻辑控制器,是硬件!多用来做嵌入式工业用控制计算机是工业生产自动化的关键因为嵌入式...
编程PLC时,X.Y.M.T.C.S各代表的是什么?
按照一般PLC的规则理解,以上标志均出现在位操作指令中:X:输入接点,有的PLC用"I"标志;Y:输出接点,也可指输出线圈,有的PLC用"Q"标志;M:内部继电...
学plc需要学c语言吗?
虽然PLC(可编程控制器)和C语言都与程序控制有关,但是学习C语言并不是PLC基础入门所必需的。PLC是利用LadderLogic(梯形图)语言进行程序设计和控制的,它是...