S7-200自由口通讯RCV指令中能否调用字符中断

我先介绍一下项目情况:使用S7200 224XP以上型号的PLCPort0做自由口与第三方的智能模块进行modbus Rtu标准协议通讯。S7200做主站,其余智能模块做从站。modbus Rtu标准协议通讯中信息发送帧的格式为:T1+T2+T3+T4 站地址 功能码 起始地址 数据长度 CRC效验码 T1+T2+T3+T4 。智能模块的响应帧格式为:T1+T2+T3+T4 站地址 功能码 数据长度 寄存器数据1 寄存器数据2......寄存器数据n CRC效验码 T1+T2+T3+T4 由于上述格式中没有起始符和结束符,所以在PLC发送请求帧完成以后转为接收状态,故采取了大于3.5个T的方式,即检测空闲状态,空闲时间大于1/9600*10*3.5=3.65ms,设置SMW90为5ms来判断信息帧接收开始。判断信息帧接收完成:由于modbus Rtu标准协议通讯每个字符间的间隔时间为1.5T(昨天晚上在书店查施耐德通讯手册看见的),那么设SMW92为大于1.5T(1/9600*10*1.5=1.6ms)2ms来判断信息帧的结束。
 由于要进行CRC校验计算,能否在使用RCV接收指令时,调用字符中断时间8。如果能,字符间时间计时器SMW92时间是否应该加长。

问题补充:
【调用字符中断时间8】为【调用字符中断事件8】。调用字符中断,可以在中断中直接将SMB2采取间接地址进行CRC计算。
  老槐 非常感谢你的帮助。我还是想弄清楚昨天你说的RCV和字符中断是否可以同时使用。例如:初始化子程序中使Port0允许接收字符。再在主程序中使用MOVE命令使得SM87.7=0,XMT一下,调用ACTH事件9设定SM87.7=1,允许接收。请问此时如果不使用RCV命令能否使得MOV 1,SM87.7生效?中断事件9完成后返回主程序时,如果使用接收命令RCV后,能否再使用字符中断,在接收完成一个字符以后就立即进行CRC运算?当然程序编写是很灵活的。我在这是想把我的这个疑问弄清楚。谢谢。

 太感谢老槐了!我给你发了个邮件,你帮我发个字符中断的里程,我看看好么?谢谢。

最佳答案

初始化子程序中使Port0允许接收字符。再在主程序中使用MOVE命令使得SM87.7=0,XMT一下,
 初始化的时候没有执行RCV,所以就不应该在主程序中使用MOVE命令使得SM87.7=0,
 使能允许接收,然后执行RCV,硬件端口才执行发送,反过来也是一样的,使SM87.7=0,然后执行RCV才人工关闭接收。
 假如有3个从站,
 1 在初始化的时候,设置SMB30,SMB87以及接收开始条件和结束条件
  想写的东西太多,你还是看手册吧,或者给个邮箱,发个例子给你。

 CRC的计算和通讯可以分开来处理,通讯有中断来处理,CRC计算可以有主程序来处理。
 既然224xp做主站,那么一切的流量控制都在你的掌握之中,也可以把CRC计算完毕再和下一个站通讯

  
 能否在使用RCV接收指令时,调用字符中断时间8?
 前一个问题不是说的很明白了吗?用RCV就不要用字符中断时间8。

提问者对于答案的评价:
非常专业,谢谢。我还不会字符中断,请发个字符中断的例程给我,好好学习一下。我的邮箱是CTL1974@163.COM。

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

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

相关推荐

  • mov指令疑问

    用上升沿触发mov指令,想将一个模拟量存储到vw100.为什么不能实现呢。 图片说明:    最佳答案 I1.3输入必须有一个从0变为1的一个跳变,AIW6这个…

    2017年11月13日
  • 程序擦除

    我点存储器擦除是显示此特性不受当前PLC支持,CPU222 版本01.22,有没得办法把忘了密码的程序擦楚 最佳答案 有两种方法: 方法1: 1.&n…

    SIMATIC S7-200 2021年7月5日
  • EM277与S7 300进行通讯时DC24V电流需求是多少mA?

    EM277与S7 300进行通讯时DC24V电流需求是多少mA?如何理解:30 mA;通信端口激活时  60 mA;通信端口加90…

    SIMATIC S7-200 2017年6月10日
  • CP243-1的网址与掩码设定有什么要求?

    用200的226带一个cp243-1模块,IP地址为192.168.0.20,子网掩码为255.255.255.0,因为网络更新,需要将原来的子网掩码设为255.255.248.0…

    2021年7月5日
  • S7-200 中EM235模拟量的设置

    各位老师,请问使用%ignore_a_1%中共有4路模拟量输入,我现有一项目,其中2路是0-5的模拟量输入,另两路是0-10V模拟量的输入,我看了一下手册,好像要么都是0-5V的输…

    SIMATIC S7-200 2021年7月5日
  • 请问如何在plc内存中用指针连续记录500个数据

    目前使用s7-200smart  需要在v区连续记录1000个数据,比如第一个数据记在vw200,下一个记在vw202,再一个是vw204,依次类推,请问怎么处…

    SIMATIC S7-200 2020年10月31日
  • 两路PTO相位

    两路PTO相位Q0.0,Q0.1设成同频率(40KHz)能做成反相的吗? 最佳答案 应该来说或者准确来说楼主你是要求同时输出脉冲一正一负的吧?可以实现。加模块EM253。 提问者对…

    SIMATIC S7-200 2020年11月1日
  • S7-200 LAD编程符号问题

    请问: 用LAD编程,程序中“( )”上方显示M3.0、M8.7、M8.1等等表示什么意思? 另外“(S)”上方标注M8.0、下方标注1又是什么意思?…

    SIMATIC S7-200 2021年7月5日
  • PPI协议是否支持多台200的PLC做从站

    一台触摸屏通过一个485接口使用PPI协议是否支持与多台200的PLC做从站通信呢? 最佳答案 可以,前提是你的触摸屏支持ppi协议!在一个PPI网络中,与一个从站通信的主站的个数…

    SIMATIC S7-200 2017年8月24日
  • pwm高速输出能做可控硅的触发信号吗

    pwm高速输出能做可控硅的触发信号吗 最佳答案 不能。原因主要有以下几点: 1、可控硅的触发信号必须与主电源相位同步,而plc发出的pwm脉冲做不到这一点; 2…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论