甲方有四个物料框放零件,组装产品的时候,会先用扫码枪扫产品的型号(生成字符串),他们希望用型号去判断(型号有三百五十多种),该从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不可以。
图片说明:
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc228863.html