自由口接收不到信息

现在正在使用自由口接受数码显示器的数据,数码显示器的是这样的,从PLC发送6个字节的数据到数码显示器,0X3A,0X02,0X43,0X45,0X0A,之后显示器发送一串数据到PLC ,
我使用的是发送、接受中断的方式,
现在PLC 发送信息已经产生中断了,但是PLC无法接收到数据,接受数据都是0,
请大侠帮分析一下。
我定义的发送数据是:VB400~VB406,装载的数据时发送数据个数6和以上的5个字节数以及结束符0X0D。这样发送数据会有问题吗?
中断程序应该是没有问题的。

问题补充:
dhyyyy兄说的”接收结束方式“是怎么设置的啊?
还有我接收到的第一个和后面的数据都是0;
用示波器检测RS485的A、B通道,发送数据时没有脉冲,是怎么回事?
直接由计算机发送数据可以接收到反馈数据的。
我定义了3个中断,定时中断,发送完中断都已经产生了,就是无法长生接收完成中断!!

最佳答案

发一个通用的通讯程序:

MAIN:

LD          SM0.1

MOVB      XXX  ,    SMB30        //根据和对方约定的波特率,字符格式等设定

MOVB      16#9C,  SMB87        //允许接收信息,使用SMB90值检察空闲状态,定时器是信息定时器  ,  超过SMW92值停止接收      

MOVW      +80,      SMW92        //根据报文长短,波特率及从站响应的快慢设定,这个时间要小于接收中断(INT3)里定时中断的时间。

MOVW      +0,        SMW90

MOVB      200,      SMB94            //SMW94    最大接收字符数,这里无用,但必须要设置。

ENI

LD          SM0.1

ATCH      接收:INT3,  9            //传输完成中断

MOVB      150,  SMB34

ATCH      发送:INT2,  10          //定时中断

发送:

LD          SM0.0

DTCH      10

XMT        VB100,  0

接收:

LD          SM0.0

RCV        VB200,  0

MOVB      250,  SMB34

ATCH      发送:INT2,  10

1  本程序只适用于单从站的问答式规约(包括modbus)。该程序为主站程序。

2  发送的数据放置在数据块,比如读取从站地址为16#12的寄存器的数据。校验提前算好,减轻PLC负担。

VB100  16#8  16#12  16#03  16#00  16#0A  16#00  16#02  16#E6  16#AA

3  不用考虑起始字符  结束字符等等,以下是通讯流程图,不论从站有无故障,询问不受影响。

4  9600波特率,从站回复13字节

5  校验程序可以放在主程序里,

有时间再发一个多从站的程序,程序大小和这个基本程序不变。  

提问者对于答案的评价:
虽然还没有解决问题,但还是谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:15
下一篇 2020年11月1日 下午4:15

相关推荐

  • 如何把VD30转换成VW10与VW20

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

    SIMATIC S7-200 2021年7月5日
  • 请问200和300的编程中,Allow代表什么定义?

    有块的引脚,有Allow或者叫AllowStart的,请问这个代表什么 最佳答案 该子程序的调用接口参数,应该是子程序中控制程序的一个使能,很多程序块取名Enable,也有人取名E…

    SIMATIC S7-200 2021年7月5日
  • 使用TD400C 第二次下载程序时,出现显示的内容不正确

    使用TD400C文本和cpu224PLC ,第二次DOWN程序时,不出现默认显示菜单,显示一个参数设置菜单,且内容发生了左右移位,也不能回到主屏幕菜单里,为什么? 问题补…

    SIMATIC S7-200 2021年7月5日
  • npn如何加继电器转换为pnp

    不小心购买了一个npn的3线接近开关,现场需要连接西门子的plc,如何接线可以改为pnp的3线接近开关plc: 西门子 224xpcn接近开关:欧姆龙e2e-x…

    SIMATIC S7-200 2020年11月1日
  • S7-200与M440变频器USS通讯报错误代码1(变频器无响应)

    S7-200与8台M440变频器USS通讯同时启动,有2个USS_CTRL程序报错误代码1(变频器无响应),但是电机还在正常运行,上位机速度显示与0来回的跳变,几秒一次,电机没有停…

    SIMATIC S7-200 2021年7月5日
  • S7-200带参数子程序如何在线监控?

    在线监控时,看不到子程序变量的变化如L0.0 触点吸合也监控不到,有没有什么好办法? 最佳答案 在线监控时,看不到子程序变量的变化如L0.0 触点吸合也监控不到…

    SIMATIC S7-200 2020年10月31日
  • s7200 pid自整定问题

    问题1:想控制数字量输出,是直接用PID向导里面的数字量,还是输出模拟量,再设置界限以控制数字量的输出?问题2:我在向导里设置数字量输出,占空比是1,调试的时候,为什么数字量输出一…

    SIMATIC S7-200 2020年11月1日
  • s7200-cpu226

    请问:CPU226的6个高速计数器的系统送电清零和靠某个检测点清零程序怎莫编,有没有相应的说明? 最佳答案 高速计数器如何复位到0? 1.选用带外部复位模式的高速计数器,…

    SIMATIC S7-200 2021年7月5日
  • USB驱动问题

    我在电脑上安装西门子的USB驱动的时候 显示无法安装 因为电脑已经有了V8.2更高的版本 可我的USB根本无法连接PLC  请问&…

    SIMATIC S7-200 2018年3月6日
  • 请前辈看看这个是什么指令

    刚开始学,有很多不懂的地方,请赐教,谢谢 图片说明:    最佳答案 这个是用户自己定义的功能,不是系统的标准库指令。你想了解这个计时转换的具体控制程序,需要打…

    2017年8月16日