[西门子] 西门子S7-1200与扫码枪自由口通讯应用案例,很实用!

[复制链接]
查看130 | 回复0 | 2024-6-6 09:38:04 | 显示全部楼层 |阅读模式
>
在一个大型超市中,需要定期对商品进行保质期的复检,传统的方式是通过人工核对条码然后进行分拣。现在引入了一条扫码自动分拣产线,通过输送带将产品进行输送,到达扫码位时,让扫码枪工作,扫码成功的信息存入PLC中,扫码失败则通过气缸推出。到达分拣位时,将扫码的结果进行判断,保质期内的产品流转到下一个工位,已过期产品通过气缸进行剔除。设备示意图,如图1所示。


图 1设备示意图






1、设备核心硬件介绍


这个案例中,使用了Honeywell OH430型扫描枪,接口为RS232类型,PLC使用1个1215C的PLC。由于扫码枪的接口为RS232,PLC需要增加一个通讯模块。在库存产品中有一个CB1241 RS485的通讯板,可通过一个RS232转RS485的转换器中转实现。使用到的核心硬件清单如表1所示。
表格 1 核心硬件清单






2、设备IO变量表



设备的IO变量,如图2所示。

图 2 IO变量表



3、扫码枪和PLC硬件连接


扫码枪与PLC的硬件连接如图3所示。

图 3 硬件连接图






4、扫码枪和PLC设置


1)扫码枪设置
对于扫码枪而言,需要进行一些简单的参数设置,最简单的方式是通过扫码枪扫码来设置参数。常见的设置码如图4所示。

图 4 扫码枪常见设置码


2)PLC设置

在PLC这边,需要对模块的通讯参数同样进行设置,如图5所示。

图 5 PLC通讯板参数设置





5、设备控制程序


在整个程序中,主要有三个程序块。1个主程序,1个扫码枪的子程序,1个自动分拣的子程序。详细的程序如下所示。
1)主程序


图 6 主程序


2)扫码枪数据收发子程序


图 7 数据收发


        在图7的程序中,指令中PORT是通讯板的硬件标识符。"全局".RCV_String使用的字符串数据类型,"全局".SEND_Buffer使用的Byte的数组用于发送对应的指令,在本案例中触发扫码的命令如图8所示。

图 8 用于扫码触发的数据



图 9 数据处理


        在图9中,是接收的数据类型的转换,扫码枪返回的数据是日期,为了便于比较,将其转换整数,然后再进行比较。
1)扫码自动分拣

图 10 分拣程序-1



图 11 分拣程序-2



图 12 分拣程序-3


        在图12中的程序,使用了两次接收完成信号,这是PLC给扫码枪发送触发扫码命令时,扫码枪会先返回1条命令,表示扫码枪已经收到该命令。当扫码枪扫码成功后会将结果发送给PLC,如果2秒钟没有返回结果,则说明扫码失败。

图 13 分拣程序-4



图 14 分拣程序-5



图 15 分拣程序-6





总结



        本文介绍了S7-1200与扫码枪自由口通讯的应用案例,程序相对比较简单,需要注意的是对扫码枪数据的处理。如果接收的字符串,可以转换成便于处理的数据类型。如果接收的是十六进制数据类型,则还需要转换成便于理解的数据类型,具体情况。根据现场要求来处理。如果你有更多关于通讯的应用,欢迎留言交流。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则