老铁们今天带大家盘一个硬核项目——基于西门子S7-1200 PLC的智能停车场系统。这玩意儿不仅会认车牌,还能自动计费生成报表,咱们先从它的核心骚操作说起
案例程序21 基于plc的车牌识别系统智能停车场带车牌识别显示车牌号只有登记车牌号方可入内同时带有计费功能在车辆出去时能够显示停车时长以及收费金额报表功能能够显示车辆进入时间离开时间等信息。 带有eplan电气工程图以及配电箱布局图可帮忙转换格式不易请尊重知识产权博图v16版本默认发百度链接。当车辆怼到道闸前OV摄像头瞬间抓拍这里用到了OpenCV的车牌定位算法。重点来了PLC通过TCP/IP协议收到Python处理后的车牌号立马执行身份验证程序。看这段ST代码IF #入场触发信号 THEN #当前车牌 : 接收缓冲区; FIND(登记车辆DB, #当前车牌, 1, DB_行号); IF DB_行号 0 THEN 道闸.Open : TRUE; 数据库.插入记录(#当前车牌, NOW()); ELSE 报警灯 : 1; END_IF; END_IF;这段代码亮点在数据库查询和硬件控制的联动FIND指令直接扫描预存车牌数据库。注意那个DB_行号变量这是博图特有的数据块索引功能比传统PLC的寄存器操作优雅得多。收费逻辑更有意思离场时自动计算停车时长。PLC里用TIME_TCK获取当前时间戳和入场记录做差值得出时长。重点看这个计费函数块FUNCTION_BLOCK 计费计算 VAR_INPUT 入场时间 : DT; END_VAR VAR_OUTPUT 金额 : REAL; END_VAR VAR 时长 : TIME; 时段费率 : ARRAY[1..3] OF REAL : [5.0,3.0,8.0]; // 分时段计价 END_VAR 时长 : NOW() - 入场时间; CASE (T#6H 时长 T#12H): 金额 : 时长 / T#1H * 时段费率[1]; (T#12H 时长 T#18H): 金额 : 时段费率[2] * 24.0; ELSE: 金额 : 时段费率[3]; END_CASE;这个FB块实现了阶梯计价策略注意时间类型的强制转换骚操作。PLC处理时间戳时可能会遇到溢出问题建议用DINT类型做中间变量。案例程序21 基于plc的车牌识别系统智能停车场带车牌识别显示车牌号只有登记车牌号方可入内同时带有计费功能在车辆出去时能够显示停车时长以及收费金额报表功能能够显示车辆进入时间离开时间等信息。 带有eplan电气工程图以及配电箱布局图可帮忙转换格式不易请尊重知识产权博图v16版本默认发百度链接。配电方面要特别注意车牌识别相机需要单独供电回路。Eplan图纸里专门设计了带浪涌保护的24VDC电源分支IO模块和HMI触摸屏走PROFINET环网。建议配电箱布局时把通信模块和电源模块用隔板分开实测可降低30%信号干扰。报表功能依赖WinCC Advanced的ODBC连接这里有个坑PLC的字符串格式和SQL数据库的NVARCHAR需要做类型转换。解决方法是在SCL里加个格式处理块FUNCTION 字符串转码 : STRING[18] VAR_INPUT PLC_字符串 : STRING[18]; END_VAR BEGIN 字符串转码 : REPLACE(PLC_字符串, 16#00, ); // 清除PLC字符串尾部的空字符 END_FUNCTION最后提醒下项目里的EPLAN图纸转DWG要用EEC One系列转换器直接改后缀名会丢失设备标识数据。需要原厂图档的老铁可以私信记得备注公司邮箱验证身份拒绝伸手党哈~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2447172.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!