扫码枪与PLC数据库内的字符串进行EQ_STRNG字符串比较

甲方有四个物料框放零件,组装产品的时候,会先用扫码枪扫产品的型号(生成字符串),他们希望用型号去判断(型号有三百五十多种),该从1、2、3、4个物料框中的哪几个框拿料。我主要想问如果用EQ_STRNG去比较我扫的条码字符串和我自己在PLC里记录的字符串是否一样,我如何用指针很简便的在PLC里生成所有产品条码的字符串(也就是库),我现在是主要不会建库,所以不知道如何让这两个条码进行比较

最佳答案

指针是用来寻址读取内容的,你工艺所需要的产品码还是需要你来定义的。
如果说你有三百五十多种产品,就要350多个变量或者是常量。我建议你建立一个结构变量的DB块作为品种的数据库,赋值初始值。可以参考下图。两图的切换可以用ctrl+4、ctrl+5快捷键。
至于指针寻址结合你的工艺要求,涉及到指针的偏移,还有我不知道字符串到底要如何比较,因此我只能给你个用整型数据比较的参考,我给你品种数据库数据类型不匹配下面的程序

                 OPN DB2  //打开品种数据库  
                 L 0            //初始化指针和循环次数
                 T MW20
                 T MD0

                 L      350  //循环350次
NEXT: T     MW    20  //循环记录变量  
                 L MW10   //扫描过来的值
                 L DBW[MD0]     //MD0为指针,指向你需要的地址,初始值为p#0.0
                 ==I
                 JC   OUT               //发现相等跳出循环
                 L P#2.0       //偏移常量,代表一个字
                 L MD0       //指针变量
                 +D             //相加偏移指针
                 T MD0       //指针变量
                 L MW20    //记录循环次数递减,到0跳出循环
LOOP NEXT               //循环NEXT标号,350次

OUT:    FP M40.0       //数据相等记录当前指针+1到MD30
            JCN  _001
            L MD0
            L P#2.0
            /D
            +L#1
            T MD30

写你要执行的动作

_001:NOP 0
整个程序的意思是通过扫描到的值,和整个DB块的变量一个一个比较,当发现有相同的时候跳出循环,执行对应的动作,指针指向相等结果的变量地址。
希望对你有帮助,用字符串比较真心的不知道,我看了下帮助貌似stl不可以。

图片说明:

扫码枪与PLC数据库内的字符串进行EQ_STRNG字符串比较  扫码枪与PLC数据库内的字符串进行EQ_STRNG字符串比较  

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc228863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午3:30
下一篇 2018年12月1日

相关推荐