西门子S7-1200博途V16自动洗车控制系统:程序组态仿真与功能详解
自动洗车控制系统,基于西门子S7-1200,程序组态仿真 博途V16,记住,是博途V16,低于这个版本无法打开。 具体功能如下: 1.系统有开始,停止按钮来控制系统运行停止。 2.有自动和手动两种模式控制洗车系统,可自由切换。 3.自动模式下,车辆自动喷洗清水,清洁剂,滚筒刷洗,烘干功能。 4.仿真体现各种传感器位置模拟 清单:plc程序 HMI组态画面wincc编写 电气原理图 io表
搞自动洗车机的PLC程序,最带劲的就是看着设备按自己写的逻辑跑起来。这次用S7-1200搭配博途V16整活,先给大伙看看核心程序段。注意了,V16的项目文件老版本绝对打不开,建议直接升级别再折腾兼容问题。
主程序OB1里塞了个模式切换的FB块:
CALL "Mode_Switch" , DB10 AutoMode := "HMI".AutoMode_Button ManualMode := "HMI".ManualMode_Button EmergencyStop := I0.7这坨代码处理自动/手动切换的互锁逻辑。重点在DB10里藏着状态寄存器的处理机制,用RS触发器实现模式切换的机械互锁,比普通自锁电路可靠得多。调试时发现个坑——急停信号必须做成硬线直断输出,要是只做软信号容易出安全事故。
自动洗车控制系统,基于西门子S7-1200,程序组态仿真 博途V16,记住,是博途V16,低于这个版本无法打开。 具体功能如下: 1.系统有开始,停止按钮来控制系统运行停止。 2.有自动和手动两种模式控制洗车系统,可自由切换。 3.自动模式下,车辆自动喷洗清水,清洁剂,滚筒刷洗,烘干功能。 4.仿真体现各种传感器位置模拟 清单:plc程序 HMI组态画面wincc编写 电气原理图 io表
自动模式的工序用GRAPH语言写起来特直观:
// 自动流程步序 STEP1: 喷淋启动 NORM: T#20S // 基础喷洗时间 TRANSITION: 车辆到位传感器X1 STEP2: 清洁剂喷射 ACTIONS: 开启Q0.3,启动比例阀PID调节 STEP3: 滚刷动作 INTERLOCK: 水位传感器X3=1 // 防干转保护仿真时在WinCC里做了个骚操作:用面板上的虚拟车辆图标拖拽触发到位传感器。对应的HMI脚本里这么写:
Sub VehicleImage_MouseDown(ByVal Item) If Item.Left > 500 Then SmartTags("Sensor_X1") = 1 End If End SubIO表配置时把光电传感器统一规划在IB2字节,输出电磁阀放在QB3。调试发现DI点抖动严重,不得不在程序里加了个带时间滤波的FC块:
// 输入滤波函数 I0.0 T1 ------| |--------(TON)--- T1.Q M0.0 ------| |--------(SET)---最折腾的是烘干风机的PID参数整定,现场用PLCSIM Advanced做闭环仿真时,突发奇想把风压传感器的模拟量输入改成用Excel表格喂数据,结果意外发现博途V16的OPC UA通讯能直接读取CSV文件,省了买信号发生器的钱。
程序里藏了个彩蛋:当连续洗第10辆车时,HMI画面会弹出个隐藏的洗车工表情包。实现原理就是在DB块里埋了个计数变量,配合WinCC的全局脚本做条件触发。这玩意儿甲方验收时压根没发现,倒是操作工后来玩得不亦乐乎。
