使用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

相关推荐

  • PLC s7-200 PTO脉冲输出,向导做完之后PLC报警

    PLC s7-200 PTO脉冲输出,向导做完之后PLC报警 最佳答案 你新建个项目,就用向导做个PTO脉冲输出试试 提问者对于答案的评价:

    SIMATIC S7-200 2021年7月5日
  • 在每天的8点到9点进行操作

    如何编程实现在每天的8点或者9点进行一个动作呢? 最佳答案 看看以下链接:http://www.ad.siemens.com.cn/service/answer/solution.…

    SIMATIC S7-200 2020年11月5日
  • s200传程序

    我用的214-1AD23-0XBB,可以强制输出,但下载不了程序,怎么回事啊?谢谢 最佳答案 你选用的是CN产品,必须使用V4.0SP3及以上的编程软件,并且必须将编程环境设置成中…

    SIMATIC S7-200 2021年7月5日
  • PLC通信

    你们好,我现在是做S7-200PLC通信,机型有226和224,,我想把俩台PLC都连起来,不知道什么原因PLC只能读出一台,我把DP线和电缆线都换过了,电脑主机和PLC也换过了,…

    SIMATIC S7-200 2017年12月7日
  • s7200dc/dc/dc脉冲和高数比较的编程问题

    cpu224输出脉冲控制伺服电机,伺服电机转动会带动后面一只编码器转动,要求伺服电机转速和后面的编码器转速不一致就中断伺服电机的转动,请高手指点,谢谢 问题补充:不知如何比较,请给…

    SIMATIC S7-200 2021年7月5日
  • RET和RETI

    “RET是从子程序返回指令,RETI是从中断有条件返回指令。”     请问,RET怎么从子程序返回?为什么要返回? &…

    SIMATIC S7-200 2021年7月5日
  • 博图SCL 语言如何将数组中指定某个数据插队前置,被插队依次后移

    例如一组数[ 4 , 8 , 1 , 3 ,5 ,9 ,6 ]&nbs…

    SIMATIC S7-200 2021年7月5日
  • PID温度控制那种方式比较好?

    本人想用PID实现加热温度控制,请教使用固态继电器,利用脉宽方式控制好,还是使用调压模块,利用模拟量输出控制电压方式好呢?补充问题:如果把温度设定在一个值(如180度),调好PID…

    SIMATIC S7-200 2020年10月31日
  • 两电机循环定时切换工作

    各位师傅,两台电机定时切换工作,时间在触摸屏里面设置,梯形图怎么做?新手求赐教,用的s7200,拜谢。 问题补充:两个定时器可以设置短时间的循环切换,但是hmi根据需求可能是几个小…

    SIMATIC S7-200 2021年7月5日
  • s7200模拟量输入值为-32762

    我的plc型号是224xp  dc/dc,用的是本身自带的模拟量输入接口,监控时数值是-32762,会偶尔变成+32762,变送器我量了下输出电压是正常的,换个…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论