关于S7-200中断的退出

我用下面中断程序接受9个字节的数据,我想问下这段程序是接受完9个字节才退出中断还是每接受一个字节就退出一次,如果是接受9个才退出,请问为啥顺序执行一遍但不退出中断?
 INT_0
 LD     SM0.0
 MOVB   SMB2, *VD256
 LD     SM0.0
 INCD   VD256
 INCW   VW200
 LD     SM0.0
 AW>=   VW200, 9
 S      M0.0, 1

问题补充:
3楼说的结束指令是RETI吗???STEP7在编译的时候自己会添上的,那是不是我可以理解为,我用VB连续发送几个字节,PLC每收一个字节退出一次中断,然后再进来???

最佳答案

我用VB连续发送几个字节,PLC每收一个字节退出一次中断,然后再进来???
 是的。

  
 当有一个字符到通讯口时,就会执行INT_0,怎么执行呢?从上到下,一个指令一个指令执行
 要执行多长时间呢?0.8+15+14+0.8+22+20+0.8+23+2.9=99.3微秒=0.0993毫秒
 当执行完S  M0.0, 1后,中断程序退出,返回到原点,继续执行原来的程序。

  
 INT_0
 LD     SM0.0                //执行所需的时间0.8us
 MOVB   SMB2, *VD256         //执行所需的时间15us+14us
 LD     SM0.0                //执行所需的时间0.8us
 INCD   VD256                //执行所需的时间22us
 INCW   VW200                //执行所需的时间20us
 LD     SM0.0                //执行所需的时间0.8us
 AW>=   VW200, 9             //执行所需的时间23us
 S      M0.0, 1              //执行所需的时间2.9us (VW200≥9)

 如果用VB发送10个字节,那么中断0执行10次。

 这样的中断程序是越短越好,防止中断程序还没执行完,通讯口又来字符了,假如波特率是9600,一个字符传送的时间是1.04毫秒(一个字符按10位计算),如果中断程序执行的时间大于1.04毫秒,那字符可能会丢失。

 如果中断程序里有CRETI(从中断有条件返回)指令,当条件满足时,CRETI后面的语句就不会被执行,退出中断程序,返回到原点,继续执行原来的程序。

  

 中断程序执行完了就退出。
 通讯口有字符来的时候,就执行这个中断。
 执行程序的时候不会等待通讯某个状态的,相反的是通讯的某个状态会产生中断。
 程序不会在某个点停留的。
 每个指令的执行时间在手册上都能查到,累加一下,就是中断执行的时间。

 另外可以用RCV指令执行接收数据,而不用字符中断方式,具体见手册。

提问者对于答案的评价:
谢谢您~~~~

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

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

相关推荐

  • 各位大虾,我现在要做一个智能仪表与S7-200的通讯?

    各位大虾,我现在要做一个智能仪表与S7-200的通讯,也就是PLC把仪表的数据读上来。我没做过。仪表会传上来几个数据?PLC怎么读仪表数据的,我都不懂。我应该怎么做?请指教?仪表的…

    SIMATIC S7-200 2021年7月5日
  • 为何s200子程序里定时器有时候不能清零?

    请教各位大神,我在子程序里用了个定时器(不带保持的)。当我激活m0.0的时候定时器(t37延时接通型定时器不带掉电保持的)计时,但当我m0.0掉电重新激活定时器的时候,定时器里时间…

    SIMATIC S7-200 2017年11月1日
  • 如何把VD30转换成VW10与VW20

    我需要把VD30变成VW10与 VW20,因为VW10与 VW20是需要分别显示的,不知道用什么指令转换?并且怎么把VW10与 VW20合并为VD30…

    SIMATIC S7-200 2021年7月5日
  • 200-SMART

    请问哪里有200-smart的最新版下载链接,谢谢! 最佳答案 、下载最新版本2.3.0.2:在下述连接的产品主页中,点击右侧链接能够下载: 产品样本 系统手册…

    2021年7月5日
  • em253参数设置问题

    我用em253控制伺服电机,速度和距离在触摸屏上设置,用的是goto指令,为什么修改参数后运动状态没变,是不是还要cfg指令啊?大家帮帮忙啊,谢谢了… 最佳答案 POSx_CF…

    SIMATIC S7-200 2021年7月5日
  • 位置控制的实现方法

    在自动化仓库的伺服电机定位系统中(用s7-200plc控制),水平方向一个电机(X轴)上下方向一个电机(Y轴),现在要依次取5个货物,坐标位置(X轴,Y轴)分别为(1000,100…

    SIMATIC S7-200 2020年11月1日
  • 如何进行ASCII码与十进制的相互的转换?

    我要写一个通讯程序,但是对方只支持ASCII码,如何进行ASCII与十进制的转换?比如一个字的数据VW1000的值是12345,我要将这个字转换成从起始地址VB200开始的5个字节…

    SIMATIC S7-200 2020年11月1日
  • 我想用win cc和s7-200通讯。可是能讯不了

    用的是否win cc6.2.的。s7-200PLC的cpu是224xp的。现在想把这俩个连起来。可是总是连不上。也不知道在那里激活IP protocol&nbs…

    SIMATIC S7-200 2021年7月5日
  • PTO手动精确控制

    请教大家,S7-200如何精确手动控制,例如我手动给一个上升延,可以发出我指定的脉冲,我想手动一次,电机转1度或2度,我知道自动运行里可以控制,但自动那个功能已经用了,我想当掉步后…

    SIMATIC S7-200 2021年7月4日
  • s7200 自然指数和对数的运算

    比如要运算2的X次方,X的数值在VD100中那我想先算Ln2,但软件里出现了红框,SM1.1的值为1,是溢出错误。看了帮助里的说明,EXP (Y * …

    SIMATIC S7-200 2020年11月5日

发表回复

登录后才能评论