目前我已了解如何将端口设置为自由通讯,但是不知道如何操作把扫描过来的条码存储到某个地址,请教大神。我看到的实例是人家直接用MOV把存储地址移动到条码指针
问题补充:
可以给我解释一下,扫描的条码保存到VB3100这个地址是如何实现的,没有看到什么指令是定义这个地址为条码保存地址啊,前一个子程序就是设置端口通讯,以及执行这个中断例行程序,截图就是中断例行程序,其他有关条码的就没了,都在这了,我没看懂哪一步是用来定义条码存储在VB3100这个地址,就是符号表直接写了
图片说明:
最佳答案
设置自由口通讯参数,如果是在prot0口的在smb30中设置,如果在prot1口中进行,则在smb130控制字节中设置。
如果你做扫描枪是接收指令(rcv)。
一般编程方法:
1)定义通讯控制字节,smb30(smb130)控制字节定义硬件连接口
2)定义接收的起始符、结束符,信息定时器等,这个按具体的扫描枪的实际信息数据确定
3)启用接收完成中断,中断事件号23(prot0);中断事件号24(prot1)
4)开中断
5)启用接收指令(rcv)
6)在接收完成中断子程序中启用接收,完成后仍然启用接收指令。
7)主程序中调用初始化程序、编辑接收完成中断的接收部分程序。
补充问题回复:
你这个仅仅是一段程序,至于如何接收的方法:
1)启用接收指令RCV
2)启用接收字符SMB2
你这个程序是利用接收字符SMB2进行的。
VB3100是接收字符开始地址的指针。其含义是当第一个接收字符通过SMB2接收完成后,存放到VB3100,然后接收第二个字符信息,存放到VB3101;第三个字符信息存放到VB3102、、、、、、所以,VB3100需要建立一个指针,就是“&”的指针。然后还要在接收完成中断程序里实现加1,使指针下移到地址VB3101,直到接收信息结束(人为的结束条件),重新第二次接收。你可以参考我在论坛上的文章,关于利用SMB2接收信息,链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1366002&b_id=64&s_id=83&num=5#anch
提问者对于答案的评价:
感谢您的认真回答,但是我还有最后一点没看懂,用SMB2做自由通讯端口接受扫码字符,为何设置SMB2是否等于10来判断条码是否接受完毕?10有什么特殊意义?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc146692.html