【10元现金红包】台达PLC485读取从站信息接收不到 点击:464 | 回复:14



C预言

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-22 19:25:12
楼主
求助帖130分-已结帖

http://bbs.gongkong.com/d/202203/881943/881943_1.shtml

这是上次发过的帖子,可以看一下!!!

PLC 1台 型号DVP-32EH

温度模块1个  支持modbus 通讯

现在的问题是PLC接收不到温度模块返回的数据

用电脑的USB转485接口,用串口助手发送 01 03 00 02 00 01 25 CA 给温度模块(这个数据是温度模块手册给的)

温度模块可以正确的返回当前测量温度

然后用PLC编写了一个读取温度的程序,用485接口发送01 03 00 02 00 01 25 CA 

这么一组数据到温度模块( 使用MODRW K1 K3 H2 D50 K1 指令)

温度模块返回的数据PLC收不到,在PLC对应的数据接收寄存器里面没有数据(监控显示是1),

后来尝试用串口助手发送温度数据给PLC也是一样的效果。。。

程序非常简单就是一个读取温度的modbus协议的程序。

是不是梯形图要编写一个接收数据的程序,我在官方例程手册上面没有看到接收数据的梯形图

上面的这个程序可以正确的发送数据,串口助手可以正确收到,就是返回的数据收不到

温度模块发送的数据也收不到

我想问一个问题,就上面这1小段程序能不能收到从站发送的数据,是不是还缺少一小段接收程序?

//-----------------------------------

下面这个图是温度模块的一些基本信息,

首先通过串口助手发送读取命令的数据 温度模块是可以正确返回数据给串口助手的,

证明温度模块没有问题

然后PLC编写的程序 通讯参数设置的也是和温度模块的一样,为什么温度模块发送的数据PLC接收不到





楼主最近还看过



gkatydid

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:609
  • 注册:2016年9月25日
发表于:2022-05-24 11:30:19
1楼

1653362683(1).png你用COM2口时,数据返回在D3 D4 D5 D6 .......中,D0为1是地址,D1是功能码03.之前已经回你了。仔细阅读说明书,com3时又不一样。连续监控D0-D15值,就有你想要的结果。

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2022-05-23 11:31:16
2楼

用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,等你反馈。

C预言

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-23 14:22:06
3楼

"关育谋" 的回复,发表在1楼
        对内容: 【用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,等你反馈。...】进行回复:

        -----------------------------------------------------------------


这个试过了的,
我的测试方法是plc和温度模块正常连接
然后usb转485的接口和plc485接口连接
等同于一个plc接了2个从站(其中有一个是电脑串口)
用电脑串口可以发现plc能正确发送读取温度指令
温度模块也能正常发送温度数据,
问题就是plc没有办法收到数据!

C预言

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-23 14:25:29
4楼

"关育谋" 的回复,发表在1楼
        对内容: 【用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,等你反馈。...】进行回复:

        -----------------------------------------------------------------


用电脑串口监控PLC给温度模块发送的 指令是正确的 读取温度指令  温度模块也正确的返回了 当前温度。

可是PLC在对应的寄存器当中没有温度,这种情况是不是可以判断PLC 坏掉了,不能正常接收数据

落叶归根87

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 338回
  • 年度积分:0
  • 历史总积分:792
  • 注册:2013年8月05日
发表于:2022-05-23 14:45:02
5楼

"C预言" 的回复,发表在3楼
        对内容: 【"关育谋" 的回复,发表在1楼        对内容: 【用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,等你反馈。...】进行回复:        -------...】进行回复:

        -----------------------------------------------------------------


可以使用别的指令,RS指令等,根据以上描述,我的判断是程序问题。

一颗小小草

  • 精华:8帖
  • 求助:22帖
  • 帖子:154帖 | 4869回
  • 年度积分:2425
  • 历史总积分:40670
  • 注册:2005年6月28日
发表于:2022-05-23 15:36:51
6楼

你监控看看D1296~D1311的值。

使用PLC的那个COM口(COM1?COM2?COM3?),使用ASCII或者RTU,程序特殊寄存器以及储存地址是不一样的。

参考一下台达的例子程序,感觉应该是程序哪里有问题。

C预言

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-23 16:03:36
7楼

"一颗小小草" 的回复,发表在5楼
        对内容: 【你监控看看D1296~D1311的值。使用PLC的那个COM口(COM1?COM2?COM3?),使用ASCII或者RTU,程序特殊寄存器以及储存地址是不一样的。参考一下台达的例子程序,感觉应该是程序...】进行回复:

        -----------------------------------------------------------------

COM2口是485的接口

最开始我是按照视频教程上的程序测试的,发现PLC可以发送数据读取不到数据(和视频教程的PLC型号一样,程序也是一模一样),

然后我按照台达的例子程序 程序完全是照着抄写的,问题还是一样的,PLC可以发送数据,读取不到数据!!!

帖子上的程序是我慢慢减掉了一些没有必要的功能,每次按下按键,发送一个读取指令,用串口监控发现,按下按键PLC发送了读取指令(发送的读取指令是正确的,温度模块也返回来正确的温度数据),但是PLC对应的数据寄存器里面不是正确的温度值

C预言

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-23 16:05:03
8楼

"落叶归根87" 的回复,发表在4楼
        对内容: 【"C预言" 的回复,发表在3楼        对内容: 【"关育谋" 的回复,发表在1楼        对内容: 【用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,...】进行回复:

        -----------------------------------------------------------------


RS指令没有试过  用台达的  读数据指令试过 问题一样

用读写指令测试也是一样的问题,总是感觉PLC接收不到数据,可以确定 温度模块有发送数据出来,就是PLC没有办法收到数据

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2022-05-24 09:38:08
9楼

引用 "C预言" 的回复,发表在3楼
        内容: "关育谋" 的回复,发表在1楼        对内容: 【用串口调试助手监视PLC发出来的指令,看看是不是你用串口调试助手发给温控的那条命令,等你反馈。...】进行回复:        -------...

PLC正常连接温控,然后在485总线上再接上USB转RS485,用串口调试助手监视看看PLC发出的命令以及温控返回的,截图,上截图。

Lasermade

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 327回
  • 年度积分:0
  • 历史总积分:37408
  • 注册:2017年9月19日
发表于:2022-05-24 11:15:31
10楼

485半双工通信,不能同时进行数据收发,如果电脑串口助手调试没问题,那就是你PLC程序编写有问题。看看程序里面发送和接收时间间隔

C预言

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 21回
  • 年度积分:108
  • 历史总积分:307
  • 注册:2018年9月01日
发表于:2022-05-25 08:42:02
11楼

"gkatydid" 的回复,发表在10楼
        对内容: 【你用COM2口时,数据返回在D3 D4 D5 D6 .......中,D0为1是地址,D1是功能码03.之前已经回你了。仔细阅读说明书,com3时又不一样。连续监控D0-D15值,就有你想要的结果。...】进行回复:

        -----------------------------------------------------------------

问题已经找到了,



你说的数据存储位置我之前有看到,这次犯了低级错误,测试modbus的时候最开始我是用电脑软件模拟从站的方式,当时把从站配置错误导致数据接收不到,后来就买了个温度模块进行测温(这个时候通讯参数没有问题)。反复调试了几次之后寄存器数值都是1,我以为程序有问题或者是PLC问题,白天上班,晚上才有空学PLC,刚好晚上室内温度是在257-265(这个数值除以10就是实际温度),对应的16进制就是101-109,然后PLC存储数据的时候时候,比如16进制的101(对应温度257除以10就是25.7度) ,存储的时候是把0102(也就是102数据),01存储在D4   02存储在D5,然后分别读取D4  号D5的时候  他们都只是 1   和4,实际上这里D4是要和D5组合一下,D4的数据要放在高8位的寄存器中才是真实的温度数据。

还是基础不扎实犯了个低级错误,


alphabet

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 153回
  • 年度积分:210
  • 历史总积分:13534
  • 注册:2015年1月02日
发表于:2022-06-13 16:32:52
12楼

读取温度模块数据用MODRD指令,读取的数据保存在D1050-D1065这16个寄存器中。

郭冬冬

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 619回
  • 年度积分:91
  • 历史总积分:147000
  • 注册:2022年4月24日
发表于:2022-06-17 12:51:24
13楼

你好,你的台达PLC作为主站没发出读写数据,最有可能是你PLC配置读写过程不规范。一般如果主站正确,串口助手也会监控PLC发出的读写数据。监控不到,那就是上层问题。

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2022-07-19 09:47:05
14楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。




热门招聘
相关主题

官方公众号

智造工程师