「案例」如何编写3台电机轮换的PLC程序?
导读:
有很多读者问我怎么让一个电机工作8小时后停止?三台或者多台电机轮换的一个程序怎么编写。这里小编就以“3台电机轮换”的一个案例来讲解,本案使用西门子200smartSR30型号的PLC。
一、控制要求
某工厂需要24小时工作,有3台电机需要轮流工作,当一台电机启动8小时以后,更换下一台电机启动,以此轮换。如果运行的电机出现故障以后,切换下一台电机运行并输出对应的报警指示灯。
二、I\O表
注:停止、过载、缺相、急停的输入信号接的是常闭。
三、控制程序
1.建立子程序
(1)变量表
建立变量表(图1),完成的子程序如图2所示。
(2)形参子程序
程序段1:每次调用程序的时候先把L11.3的状态清除,以免重复调用的时候出现干扰。
程序段2:启动的时候需要时间设定的小时或分钟大于0才可以启动,如果程序已经在运行了,则无法再触发启动.
程序段3:典型的起保停电路,当停止、报警、定时完成,触发会断开电路。
程序段4:当有过载L0.2或者缺相L0.3时会触发报警输出L11.2,复位的时候会暂时断开输出,如果故障没有解除,即使复位也没办法把报警消除。
程序段5:当故障复位输入的时候会复位报警。
程序段6:当第一次启动的时候会把运行时间清零,如果不清楚为什么,请看程序段2。
程序段7:当运行的时候,外部定时信号输入时,运行时间S会加一。
程序段8:当运行时间S=60时,运行时间M加一,然后把运行时间S清零。
程序段9:当运行时间M=60时,运行时间H加一,然后把运行时间M清零。
程序段10:运行的时候,运行的时间和设定的时间相等时,会输出定时完成信号,并断开程序段3的运行。
2.控制程序
程序段1:在自动的模式下,当电机3定时完成或报警的时候才会切换到一号电机启动,如果说电机启动2正在运行,第3台电机故障了也不会切换到第一台电机启动。
程序段2:启动I0.0或一号电机启动都可以对电机进行启动,对运行位输出。停止、急停、过载、缺相,由于外部用的是常闭开关,没有触发的情况下,对应的通道会为1,所以这里使用了常闭触点。
当停止或则急停触发时会使电机停止,当过载或缺相触发时,使电机停止,并输出报警。VW0、VW2是对电机运行的时间设定,VW4、VW6、VW8是电机的运行时间。
程序段3:原理和程序段1一致,只是对应的地址不一样,请参考程序段1。
程序段4:原理和程序段2一致,只是对应的地址不一样,请参考程序段2。
程序段5:原理和程序段1一致,只是对应的地址不一样,请参考程序段1。
程序段6:原理和程序段2一致,只是对应的地址不一样,请参考程序段2。
程序段7:当电机1或者电机2、电机3报警的时候会输出报警指示灯。
程序段8:当电机1或者电机2、电机3运行的时候会输出运行指示灯。
程序段9:如果报警指示灯和报警指示灯没亮的时候输出停止指示灯。
3.数据块
对每台时间进行初始化设定,如果需要可修改的时间,可以在触摸上建立组态程序,关联对应的变量。
总结:
以上就是整个项目的PLC程序,如果需要其他功能可以对程序修改,本案例是小编针对控制要求编写的程序,在手动情况下可单独对一台电机进行控制,在自动模式下为了确保电机正常轮换,请不要启动多台电机,如果说有一台电机出现故障,轮换的时候会跳过有故障的电机。
注:以上程序只供学习参考,如果说要用于实际生产中,需要根据项目和现场控制进行修改。
(来源:技成培训网原创,作者:邹志锐,转载请注明出处!)
多种PLC之间互相交换数据的方法,建议收藏
自动化工程师朋友们都知道,工控现场有许多 PLC 之间需要通讯和数据交换,实现项目之间的数据对接和共享。
但对于不同品牌的 PLC 来说,由于接口、协议不同,程序不开放等诸多因素,往往令人头疼,也很无解,给项目的顺利实施增加了很多困扰。
北辰 S 系列,是实现 PLC 数据交换的神器。
之所以称它为神器,是因为 S 系列可以把 PLC 的串口和网口都统一成通用的 ModbusTCP 以太网协议,PLC 之间以 ModbusTCP 服务器(从站)和客户机(主站)的形式进行通讯,解决了 PLC 协议转换和数据交换的难题。
北辰 S 系列具有 ModbusTCP 服务器功能,Modbus 数据区可自动或编辑映射至 PLC 寄存器,ModbusTCP 的客户机如组态软件、OPC、DCS 系统、PLC 都可以便捷访问。
S 系列还具有 ModbusTCP客户机功能,西门子、三菱、欧姆龙、松下、台达等 PLC 配上北辰 S 系列模块,即可轻松实现 ModbusTCP主从站通讯和数据交换。
所以,北辰模块既可用于编程监控、数据采集和设备联网,还可用于协议转换和数据交换,既可用于有线网络环境,也可用于无线网络环境的协议转换和数据交换。
以适用于西门子 S7300/400 的 BCNet-S7300-S 为例,ModbusTCP 和 ModbusRTU 数据交换应用如下:
除此之外,S 系列还可应用于三菱、欧姆龙、松下、台达、施耐德、信捷、MODBUS RTU等PLC和设备之间的数据交换,在这里不一一列举。
示例
以 FX3U 与 FX5U 交换数据为例,数据交换采用 ModbusTCP 协议实现,其它支持 ModbusTCP从站协议的 PLC(如施耐德 PLC),均可实现该数据交换,步骤类似不再重复介绍。
对于支持ModbusTCP 从站协议的仪表,FX3U 可直接通过 BCNet-FX-S 进行仪表数据采集。
BCNet-FX-S 的 MD8(X1)连接 FX3U 的圆形编程口,FX5U 自带以太网口与 BCNet-FX-S 的以太网口连接,BCNet-FX-S 通过 BCDevice 工具配置交换命令,实现实时高效的 FX3U 和 FX5U 数据交换。
该功能基于 BCNet-FX-S 的 ModbusTCP 客户机功能实现,通过 BCDevice(软件版本 V1027 及以上)进行主站命令配置,无需 PLC 编程,提高应用开发速度和便捷性。
数据交换也可采用 BCNet-FX-S 的 WiFi 接口实现,可实现两个 PLC 直接的无线数据交换;具体在建立客户机时,本地网卡可选择 WiFi 接口。
一、配置 FX5U
STEP 1
1. 打开 GX Work3,新建项目,以太网配置(内置以太网口)中,配置“Modbus/TCP 连接设备”。
2. 编辑 PLC 软元件分配,按下表配置所示,D0 映射的Modbus地址为 40001(HoldingRegister的 0 地址)。
二、配置 BCNet 模块数据交换命令
STEP 2
1. 打开 BCDevice,搜索到 BCNet-FX-S 后,选择【修改设备参数】
2. 新建客户机
【1】点击数据交换,右键创建新的客户机 0;
【2】ModbusTCP协议用于连接远端的从站设备,此例中为 FX5U 的网口,该网口通过配置,已经支持 ModbusTCP 服务器功能,且 PLC 的数据和 Modbus 地址映射关系也已配置;
【3】本地网卡选择,选择 LAN 时,基于以太网口进行数据交换;选择 WiFiStation 或者 WiFiAP时,采用 WiFi 无线方式进行数据交换,该方式应当确保设备之间的 WiFi 连接已经建立;
【4】远程服务器的 IP 地址为 FX5U 的 IP 地址,这里设置为 192.168.1.130;远程服务器的通讯端口号,默认为 502;连接超时时间默认为 10s;
【5】点击确认,创建客户机。
3. 在客户机中配置数据交换命令
【1】点击新建命令(FX3U 的 D0 读取 FX5U 的 D0);
【2】选择[远程→本地],传输 1 个字;传输超时设置层 2s;
【3】本地站点(FX3U)设置数据区域选择 D 寄存器,起始地址为 0,即选择软元件 D0;
【4】 远程站点(FX5U)的 D0 由上一章映射表可知被映射成 HoldingRegister 的 0 地址;故数据区域选择 HoldingRegsiter,偏移地址填 0,站点地址是 ModbusTCP 协议中的单元号,这边由于 FX5U 不是网关,故可忽略;
【5】点击“检查”按钮可进行规则检查,点击“确认”按钮即可生成命令;
4. 客户机监视
点击客户机监视按钮,【错误信息】为无错误,且【正确】有数据跳动,说明通信成功。
三、验证数据交换
STEP 3
1. 打开 GXWork3 变量监视表,对 FX5U 的 D0 进行数据修改为 BC12H;
2. 打开 GXWork2 变量监视表,对 FX3U 的 D0 进行数据监视,值为 BC12H;
3. 上述监视说明已经将 FX5U 的 D0 数据读取到 FX3U 的 D0 中,实现了数据交换功能;数据交换功能亦可实现 FX3U 到 FX5U、FX5U 到 FX3U 的位、字节和字的数据交换功能。
S 系列的型号及适用 PLC
相关问答
plc怎么让一段程序重复运行两次?
可以用一个调用子程序来实现。可以用一个调用子程序来实现。
大家好,请问同一个程序通过电脑多次重复写入三菱PLC,PLC是不是不能执行程序呀,谢谢了?
能够执行,PLC的程序是如果输入新的程序那么以前PLC中已存在的程序就会被覆盖,只留你最新输入的程序能够执行,PLC的程序是如果输入新的程序那么以前PLC中已存...
plc如何做按一下通再按一下断?
您好,PLC可以通过以下步骤实现按一下通再按一下断的功能:1.配置一个输入口(如X0)用于接收按键输入信号。2.在PLC程序中配置一个状态变量(如Status),用...
plc多次传程序对plc有影响吗?
有plc设备不可以反复使用PLC设备,作为驱动元件,在语法上是可以无限次的使用。但在实际编程中是不应该的,应该避免使用的。因为,在重复使用的输出线圈中只有...
三菱plc怎么不重复输入?
Plc它的工作原理是重复扫描,在一定的时间和周期下,重复性的工作,他的工作扫描时间为毫秒,我们的输入点位,它是通过多次的循环扫描啊,运算的,假如我们在上...P...
plc输出线圈能有两个相同的吗?
PLC输出线圈是指PLC输出模块中的一个电气元件,它用来控制外部设备的开关状态。在同一PLC输出模块中,一般是不允许出现两个相同的输出线圈的,因为这样会导致输...
plc启动程序怎么只执行一次?
关于这个问题,要让PLC启动程序只执行一次,可以在程序开头加入一个标记,表示程序已经执行过了。具体步骤如下:1.在程序开头定义一个变量,用于标记程序是否...
在s7200同一个程序中,可以对同一输出线圈多次使用置位和复位指令吗?
可以的,但是使用的时候还要要注意,程序是从上往下扫描的,假如线圈同时置位复位了,PLC输出的时候只认程序最下面那个状态!可以的,但是使用的时候还要要注意,程...
plc单独编程到调试过程详情?
熟悉控住对象、PLC选型及确定硬件配置、设计PLC的外部接线。设计控制程序、程序调试和编制技术文件。1了解控制对象,确定控制要求这一步是系统设计的基础。...
plc同一个线圈可以两次置位吗?
可以可以的,但是使用的时候还要要注意,程序是从上往下扫描的,假如线圈同时置位复位了,PLC输出的时候只认程序最下面那个状态!置位指令SET和复位指令RST可以...