使用RCV指令如何使用

如何使用RCV指令啊。我遇到问题了。程序中定义了RCV然后,我怎么才能通过软件或计算机发送一组数据,让plc接收呢。并且如何查看接收到的数据呢。
 使用初始化RCV时是不是要求都是16进制的数?

问题补充:
我按书上写的程序,可是使用一个串口调试软件时,出现了“接收超时"错误,应如何处理。咋弄的呢。请各位帮忙

   主程序:
   LD     SM0.1
   MOVB   16#09, SMB30
   MOVB   16#B0, SMB87
   MOVW   +5, SMW90
   MOVB   100, SMB94
   ATCH   INT_0:INT0, 23
   ATCH   INT_2:INT2, 9
   ENI
   RCV    VB100, 0
    INT0:
   LDB=   SMB86, 16#20
   MOVB   10, SMB34
   ATCH   INT_1:INT1, 10
   CRETI
   NOT
   RCV    VB100, 0
   INT 1 :
   LD     SM0.0
   DTCH   10
   XMT    VB100, 0
   INT 2 :
   LD     SM0.0
   RCV    VB100, 0  楼下说在VB101,VB102中可以看到数据可是。我停下plc后,能通讯,但是看不到数据块啊。里边啥也没有?

最佳答案

1 使用初始化RCV时是不是要求都是16进制的数?
 不是的,用十六进制还是二进制还是十进制都是为了阅读的方便。
 比如: MOVB   16#B0, SMB87 = MOVB   176, SMB87

 2 出现了“接收超时"错误,应如何处理
 因为在串口软件里有接收超时时间的设定,串口将数据发送后,在设定的时间内收不到数据就会显示“接收超时"错误,
 这说明PLC没有给电脑发数据。

 3 PLC执行RCV前你要做两件事
   第一件事是初始化通讯口,
   MOVB   9, SMB30    
   第二件事是定义接收数据开始和结束的条件。
   MOVB   16#B0, SMB87
   允许接收
   开始条件是空闲线时间  这个时间是SMW90 
   结束条件是收到结束字符  这个字符在SMW89里赋值
   而你程序里没有对SMW89赋值,所以要加一句MOVB   X, SMB89

 4
  LD     SM0.1
  MOVB   9, SMB30        
  MOVB   16#B0, SMB87
  MOVW   5, SMW90          开始条件
  MOVB   100, SMB94
  ATCH   INT_0:INT0, 23   端口0:接收信息完成  
  ATCH   INT_2:INT2, 9    端口0:传输完成  
  ENI
  RCV    VB100, 0

  INT0:
  LDB=   SMB86, 16#20   
  MOVB   10, SMB34
  ATCH   INT_1:INT1, 10
  CRETI
  NOT
  RCV    VB100, 0
  若收到结束字符则延时10MS发送,没收到结束字符,继续执行接收。

 
 5 在MOVW   5, SMW90 后 加一句MOVB   X, SMB89
  然后用串口软件发送数据,比如34 38 12 34 X(X是在SMB89里定义的)
  然后在接收信息窗口就能看到你发的信息。
  把CPU STOP后,在VB101 VB102 VB103能就能看到你发的数据。
  在状态图里看,先输入地址,然后点工具栏上的状态表监控. 
  看PLC里运行的数据不是在数据块里看的,是在状态图里看的。

 

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:57
下一篇 2021年7月5日 上午1:57

相关推荐

  • step 7 microwin smart v2.3在windows10中安装好了但是打不开

    step 7 microwin smart v2.3软件安装了,但是双击没反应。很多都试过了,删除注册码,管理员身份进入什么的,兼容性也改了…

    SIMATIC S7-200 2021年7月5日
  • Wincc与MATLAB通信

    专家您好!      本人想实现WINCC和MATLAB的通讯。 MATLAB是7.0本版。请问WINCC和M…

    SIMATIC S7-200 2021年7月4日
  • 调模拟量模块

    各位师傅你们好,请问大家调模拟量模块是不是要把模块取下来,调里面有个A,B,C,D啊,谢谢了 问题补充:那400也是把模块取出来调A,B,C,D吗 最佳答案 1.S7-300的模入…

    SIMATIC S7-200 2021年7月4日
  • PLC 200 modbus 通讯

    用S7 200控制多台vacon变频器,用modbus通讯,如何轮询访问使发送接收不冲突而且通讯速度快?最好有实例程序!邮箱:987920511@qq.com 问题补充:…

    SIMATIC S7-200 2021年7月5日
  • S7-200以太网ModBus通信

    我没有做过S7-200以太网通信,请问以太网可以做modbus协议通信吗,如可以请提供下S7-200程序实例。如不可以用,哪要如何做,上位机是三维力控的组态软件。 问题补充:和上位…

    SIMATIC S7-200 2020年10月31日
  • 用1个按钮实现开关切换

    请问当i0.0输入一个上升沿的时候q0.0输出为高电平,当i0.0再次输入一个上升沿的时候q0.0输出为低电平(循环),每次输入的时间间隔不得小于1秒,用s7-200的梯形图怎么编…

    SIMATIC S7-200 2021年7月5日
  • S7-200与下面的软启动器联机

    请问:S7-200CPU226与下面的软启动器H和仪表监测装置通讯的话,是用什么方式做的呢?我看到用的是PROFIBUS电缆做的连接.指令用什么指令呢? 问题补充:那S7-200和…

    SIMATIC S7-200 2021年7月5日
  • 关于主程序,子程序,中断程序的关系?

    主程序调用子程序,主程序能通过事件触发中断程序吗? 钻石用户推荐最佳答案 1、主程序能通过事件触发中断程序吗? 所有事件都是规定好的,只有 T32、T96&nb…

    SIMATIC S7-200 2021年7月5日
  • 怎样理解自由口通讯指令

    请问怎样理解自由口通讯指令的执行过程比如说我在1#PLC里用间隔50ms的定时中断执行了XMT指令,XMT执行完了就会触发发送完成中断?还是每隔50ms就执行一次定时中断直到有另一…

    SIMATIC S7-200 2020年10月31日
  • 关于cpu224xp与pc通讯问题

    pc是win7 32位的,安装的是V4.0 sp9的STEP7,手上有一台cpu224xp的plc,和一根原装的USB-R485电缆,想实现plc与pc的通信。…

    2017年11月17日

发表回复

登录后才能评论