分享免费的编程资源和教程

网站首页 > 技术教程 正文

西门子 SMART PLC 扫码串口通讯 西门子plc与扫码枪通讯

goqiw 2024-11-07 11:13:29 技术教程 145 ℃ 0 评论

西门子 SMART PLC 扫码串口通讯

西门子SMART PLC自集成485端口,另外可以外加一个信号板485/232串口通讯,扫码枪一般的都是232通讯,这时候你需要用485转232串口设备,扫码枪扫码到条码信息后通过232发送到PLC,PLC通过RCV接收报文,并在接收中断中接收后再次使能RCV接收

1. 先要设置通讯格式,集成的485用SMB30,信号板用SMB130设置,如下图设置成9,相当于是无奇偶校验,字符8位,波特率9600,自由端口模式,也可以用2进制写入2#1001

2.0 如下图,148相当于二进制的2#10010100,设置RCV使能,忽略SMB188,SMB189他们是字符开始结束

2.1 设置接收周期,超时时间,接收最大字符数

3.0 如下所示,集成485端口接收完成未23,这里把端口1接收完成后24触发中断程序绑定,ENI中断打开,RCV接收从VB600开始

4.0 中断程序,当收到SM86.2为1时代表字符间超时信息接收结束,这时候可以递加VB800,做接收计数,用VB1100擦干净接收的数据区域,然后把接收缓冲区VB600拷贝到VB840接收区中,这里还做了不清空,其实不用也可以

5.0 然后在中断中再次启动RCV接收就行了,PORT就是端口号,SMART的话要么0要么1,0就是集成端口,1就是信号板

另外要处理字符的话,可能会用到这几个指令

1.STR_FIND,寻找字符的指令,在VB900的第AC0位(AC0必须为1)开始寻找跟VB970相同的字符,如果没找到就把AV0为0,如果找到就显示把AC0编程那个位数

示例:

2. 改变字符串某一位的值,依次的注释如下,把&VB900在内存中的地址给到LD10,AC0(累加寄存器即32位暂存数据寄存器)为寻址到位数,把VD1600跟LD10的地址相加,比如AC0为5,减1得VD1600为4,那LD10是指向地址为VB904,而*LD10就是指向VB904这个地址在内存中的值,可以直接赋0到给*LD10,也就是给VB904赋0,LD10为临时双字存储区

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表