自由口通讯程序依然不通

各位,我之前已经问过一个自由口的程序,但是依然没有调通。曾经通过,但现在不通了,不知道是不是程序的问题。硬件都查过了,没问题的。
 Network 1 // Network Title
 // Network Comment
 LD     SM0.1
 MOVB   16#09, SMB30
 MOVB   16#B0, SMB87
 MOVW   3, SMW90
 MOVB   16#0, SMB89
 MOVB   255, SMB94
 ATCH   INT0, 23
 ENI
 RCV    VB560, 0
 MOVR   0.0, VD500
 S      Q1.0, 1 
 下面是中断程序

 LDB<>  SMB86, 0
 BMB    VB560, VB570, 9
 MOVB   5, VB570
 STR    VB570, 1, VD500
 S      Q1.1, 1

 LDR<>  VD500, 0.0
 S      Q0.0, 1

 LDB=   VB576, 16#6D
 /R     1000.0, VD500
 AB=    VB577, 16#56
 =      Q0.2

 LDB=   VB576, 16#56
 =      Q0.1

 结果Q0.0=0,但是按本意这个时候它应该有一个非零的读数。而且按照通信协议,每次8字节,以00为结束,前5位是数字,后两位是单位,也就是当采集到的数据是以mV为单位时,VB576=6D(ASCII的m),VB577=56(ASCII的V),或者当采集到的数据是以V为单位时
 VB576=56.但是运行的结果是在以mV为单位的情况下,Q0.2=0,在以V为单位的情况下,Q0.1=0.也就是说相应位不是要采集的。
 另外,我用Q1.1测试是否发生自由口通讯,结果是在主程序运行(Q1.0=1)几秒后,Q1.1=1,说明自由口通讯发生了,基本排除了硬件问题。请问大家程序上有什么问题?为什么VD500依然为0(Q0.0=0)?

 
 

问题补充:
我是很想知道我的做法如何错了?没道理啊

最佳答案

这样用就可以了,不但可以多次接收数据,而且对数据也进行判断了。
 数据放在VB5 VB6 VB7 VB8 VB9 VB10 VB11 VB12 8个字节里面,然后转换到VD100里面。

 Network 1 
 LD     SM0.1
 MOVB   5, VB4
 MOVD   &VB5, VD0
 MOVB   0, MB0
 MOVB   9, SMB30
 ATCH   INT_1:INT1, 8
 ENI

 INT_0:INT0
 Network 1 
 LD     SM0.0
 INCB   MB0
 MOVB   SMB2, *VD0
 INCD   VD0
 Network 2 
 LDB=   MB0, 8
 MOVB   0, MB0
 -D     8, VD0
 STR    VB4, 1, VD100

 INT_1:INT1
 Network 1 
 LDB<>  SMB2, 0
 CRETI
 Network 2 
 LD     SM0.0
 ATCH   INT0, 8

 

 

提问者对于答案的评价:

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

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

相关推荐

  • s7 200 子程序

    在程序中 SDR 与SCR有什么不同 各有什么用途 问题补充:不是SDR是SBR 是子程序快 但是程序中还有SCR作为子程序快这是…

    SIMATIC S7-200 2021年7月5日
  • 帮助

    误把波特率设为187.5,然后下载到CPU,过后就说什么也联不上CPU了。我的通讯线不支持波特率187.5,现在不知道该怎么办? 最佳答案 估计是下载系统块的时候是没问题,下载后就…

    SIMATIC S7-200 2017年11月27日
  • TD400"内部”文本信息

     1、TD400一通上电源的时候,屏幕上就显示:TD400C   版本1.0.0.3   CPU停机(在屏幕的…

    SIMATIC S7-200 2021年7月5日
  • s7-200 smart 能不能做canopen通讯

    伺服电机支持CANopen通讯,不知道能不能用S7-200smart来通讯实现控制 钻石用户推荐最佳答案 不可以,200SMART不支持CANOPEN通讯;建议:1、更换PLC2、…

    SIMATIC S7-200 2021年7月5日
  • PLC控制电磁阀

    问题:需要用S7-200控制中间继电器、交流接触器、电磁阀、电磁铁等感性负载。请问: 1.继电器的线圈电流为0.2A左右,加了抑流模块,能否使用晶体管输出的PLC(0.7…

    SIMATIC S7-200 2021年7月5日
  • 如何保存中间的数据

    有一个电动阀门,在开的时候,有反馈输入到plc中,我想读取并记忆这个阀门反馈中间一个值,例如我想记忆当阀门开到20%时,把这个数据读取并记忆下来,请问怎么做? 问题补充:是这样,我…

    SIMATIC S7-200 2021年7月5日
  • WINCC与两台S7-200的PLC通讯

    如题,两台S7-200的PLC与WINCC通讯如何实现?如果不用EM277,直接PPI通讯,加一个RS232与RS485的转换接口可以不?两PLC之间怎么连接,是否就是直接用RS4…

    SIMATIC S7-200 2020年11月1日
  • 有谁了解加温、加湿、表冷器冷却三者之间的控制关系啊???

    有谁了解加温、加湿、表冷器冷却三者之间的控制关系啊???设备为蒸汽加热、蒸汽加湿、表冷器降温/降湿,它们之间控制关系是什么样的? 最佳答案 温度高:表冷器降温/降湿,启动或加大;加…

    SIMATIC S7-200 2017年11月13日
  • 200PLC密码清除

    请问各位,我有一224CN的PLC,是加了4级的密码,我想把这个密码和程序清除,重新用这个PLC,可是清不了,点PLC清除,出现密码框,我问了西门子密码是CLEARPLC,我输了也…

    SIMATIC S7-200 2020年11月1日
  • 西门子200编程

    200编程:用一个for循环实现一个LED灯亮灭5次,我按照文档编的程序就是不好使,恳请大侠帮忙!用梯形图。急急急 最佳答案 一个for循环必然在一个扫描周期做结束,而你用普通的输…

    SIMATIC S7-200 2020年10月31日

发表回复

登录后才能评论