关于RCV指令和VB通讯的问题 成功了的程序

土著

  • 帖子

    10
  • 精华

    0
  • 被关注

    2

论坛等级:新手

注册时间:2004-06-13

普通 普通 如何晋级?

发布于 2004-10-28 17:18:50

0楼

我10.24发的贴,后来经过这几天,我靠自己的力量解决了用PLC的RCV指令和VB通讯的问题,可能编的不好,只供大家参考。

主程序(MAIN):
LD SM0.0CALL SBR_0 开通扫描后调用SRB_0

SBR0
LD SM0.1 首次扫描接通后;
MOVB 16#09, SMB30 初始化自由口,9600,8,1;
MOVB 16#E0, SMB87 接收功能启用、检测信息的开始位、检测信息的结束位
MOVB 16#01, SMB88 设定信息的开始字符位为1(16#01);
MOVB 16#03, SMB89 设定信息的结束字符位为3(16#03);
MOVB 4, SMB94 设定信息的长度为4个字符位(注意:一定要为4位),传送字符串 长度加1;
ATCH INT_0, 23 当接收完成时,产生中断事件23,发生中断INT_0;
ENI
RCV VB100, 0 允许中断;把VB100的地址指向串口的接收缓存。

INT_1
LDB= SMB86, 16#20 如果SMB86=20(接收信息结束),调用子程序1(SBR_1)
CALL SBR_1, VB102 ,传入地址VB102(注意:一定是VB102,在VB100的基础上加2位)
RCV VB100, 0 如果接收完成,则再次接收。

SBR_1
LDB= #IN1, 16#41
S Q1.0, 1 如果传入的数(16进制)是41,Q1.0接通;
LDB= #IN1, 16#42
R Q1.0, 1 如果出入的数(16进制)是42,Q1.0断开。


VB程序
Option Explicit
Private Sub Command1_Click()
Dim Buff(2) As Byte
Buff(0) = &H1
Buff(1) = &H41
Buff(2) = &H3
MSComm1.Output = Buff '通过串口发送字符串1 41 3

End Sub

Private Sub Command2_Click()
Dim Buff(2) As Byte
Buff(0) = &H1
Buff(1) = &H42
Buff(2) = &H3
MSComm1.Output = Buff '通过串口发送字符串1 42 3

End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True

End Sub
做个诚实、正直、有能力的科技工作者
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33277条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。