关于自由口通信的问题

已锁定

LG

  • 帖子

    37
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2003-06-06

普通 普通 如何晋级?

关于自由口通信的问题

945

8

2003-08-20 21:10:12

我现在用自由口协议,通过计算机控制PLC的寄存器,在计算机向PLC写命令的时候出现了奇怪的现象:只能写进去一次,第二次再往同样的PLC寄存器中写数据的时候,PLC的该寄存器就不变化了,所以我现在没有办法通过计算机对PLC的一个寄存器进行控制。
以下是我的通信程序片段,请各位师兄指教,谢谢。主程序:
NETWORK 1
LD SM0.1 //第一次扫描调用初始化子程序
CALL initialize
NETWORK 3
LDB= VB134, VB199 //指令中的站地址与本机站地址相符
AB= VB102, 6 //指令类型为写指令
A M0.0 //调用写子程序
CALL Write
NETWORK 5
LD SM4.5 //当端口空闲时启动RCV
RCV VB100, 0
初始化程序:
NETWORK 1
LD SM0.0
MOVB 5, SMB30 //0口"19200,N,8,1"

NETWORK 2
LD SM0.0 //RCV指令初始化
MOVB 16#EC, SMB87
MOVB 103, SMB88
MOVB 71, SMB89
MOVW +1000, SMW92
MOVB 35, SMB94
R SM87.2, 1

NETWORK 3
LD SM0.0
ATCH RCVcomplete, 23 //连接口0接收完成的中断

NETWORK 4
LD SM0.0
ATCH XMTcomplete, 9 //连接口0发送完成的中断

NETWORK 5
LD SM0.0
ENI //中断允许

NETWORK 6
LD SM0.0
MOVB 2, VB199 //将本机站地址装入寄存器
接收完成中断:
NETWORK 1
LD SM0.0
ATH VB103, VB134, 2 //指令译码(ASCII码到十六进制)
ATH VB105, VB135, 8
ATH VB113, VB139, 2
S M0.0, 1
发送完成中断:
NETWORK 1
LD SM0.0
S SM87.7, 1 //允许口0进行接收
MOVB 0, VB131 //接收缓冲区中存放指令结束字符的字节清零
R M0.0, 1
PC向PLC写数据:
NETWORK 1
LD SM0.0 //停止端口0的接收
R SM87.7, 1
R M0.0, 1
RCV VB100, 0

NETWORK 2
LD SM0.0 //装入要写如数据源的地址指针
MOVD &VB115, VD145

NETWORK 3
LD SM0.0 //写入数据
ATH *VD145, *VD135, VB139

关于自由口通信的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33295条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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