您现在所在的是:

台达论坛

回帖:24个,阅读:3121 [上一页] [1] [2] [3] [下一页]
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:01:51
#10楼
以下是引用4045132012019/4/27 21:18:22的发言:
能不能教教我怎么改成RTU模式。
台达PLC做Modbus RTU从站的话,需要写一小段程序:
附件 image.jpg
01、通信协议:MODBUS RTU
02、起始位:1位
03、数据位:8位
04、校验方式:偶校验
05、停止位:1位
06、波特率:9600bps
07、站号:1
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:06:16
#11楼
以下是引用4045132012019/4/27 21:18:22的发言:
能不能教教我怎么改成RTU模式。
附件 image.jpg
第一行:MOV H87 D1120表明程序通信格式设置为无起始符、无第一结束符、无第二结束符、波特率为19200bps、停止位为1位、校验方式为偶校验、数据长度为8位。详情可见台达系列通信手册,如下所示:
附件 image.jpg
附件 image.jpg
附件 image.jpg
第二行:MOV H1 D1121,表明从站地址是01,可依次设置为02、03、04、05、06……根据从站个数进行设置。详情可见台达通信手册,如下所示:
附件 image.jpg
第三行:MOV K100 D1038,表明PLC作为从站时,响应主站命令的延迟时间为100ms,详情可见台达通信手册,如下所示:
附件 image.jpg
第四行:SET M1120,是通信格式设定保持用标志位,详情见台达系列手册,如下所示:
附件 image.jpg
第五行:SET M1143,表明选择MODBUS RTU通信协议,详情可见台达系列手册,如下所示:
附件 image.jpg
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:08:02
#12楼
以下是引用4045132012019/4/27 21:18:22的发言:
能不能教教我怎么改成RTU模式。
附件 image.jpg
设置后各元件对应的Modbus地址如下所示:
附件 image.jpg
附件 image.jpg
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:09:32
#13楼
以下是引用4045132012019/4/27 21:18:22的发言:
能不能教教我怎么改成RTU模式。
通信测试如下:
举例一:
比如要用串口调试助手对PLC的Y0进行置位操作,可以用串口调试助手对PLC发送如下数据:
01 05 05 00 FF 00 8C F6
Y0置位有效后,PLC会原样返回如下数据给串口调试助手的
01 05 05 00 FF 00 8C F6
附件 image.jpg
解释如下:
01:PLC从站地址
05:MODBUS RTU功能码
05 00:Y0的MODBUS RTU地址,查上面的表格可知
FF:对Y0置位
00:Y0原状态
8C F6:计算出的CRC校验,高位在后,低位在前
CRC计算小工具如下所示:
附件 image.jpg

这之前,请使用USB转RS485 接PLC的COM2口
硬件接线无误后,请点击手动发送进行测试

[此贴子已经被作者于2019/4/28 0:11:56编辑过]
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:10:57
#14楼
举例二:
比如要用串口调试助手对PLC的Y1进行复位操作,可以用串口调试助手对PLC发送如下数据:
01 05 05 01 00 00 9C C6
Y1复位有效后,PLC会原样返回如下数据给串口调试助手的
01 05 05 01 00 00 9C C6
附件 image.jpg
解释如下:
01:PLC从站地址
05:MODBUS RTU功能码
05 01:Y1的MODBUS RTU地址,查上面的表格可知
00:对Y1复位
00:Y1原状态
9C C6:计算出的CRC校验,高位在后,低位在前
CRC计算小工具如下所示:
附件 image.jpg

这之前,请使用USB转RS485 接PLC的COM2口
硬件接线无误后,请点击手动发送进行测试

[此贴子已经被作者于2019/4/28 0:11:45编辑过]
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:12:50
#15楼
各功能码介绍如下:
(一)对X、Y、M等元件进行读操作的话,一般使用功能码02或者01
比如要对X0-X7进行读操作的话,假如PLC地址是01,那么串口调试助手应该给PLC发送如下数据:
01 02 04 00 00 08 78 FC
解释如下:
01:PLC从站地址
02:功能码
04 00:是X0的地址
00 08:连续读8个,所以是00 08
78 FC:计算出的CRC校验
PLC收到命令后,会返回如下数据(假如X0-X7状态全为1):
01 02 01 FF E1 C8
解释如下:
01:PLC从站地址
02:功能码
01:字节计数,因为X0-X7共8位计1个字节,不足8位按1个字节算,超过8位按2个字节计算
FF:X0-X7的状态
E1 C8:CRC校验
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:13:30
#16楼
(二)对Y、M、S单个元件进行置位、复位操作一般用功能码05;对多个进行置位、复位一般用15功能码
比如要对Y0-Y7全部置位,假如PLC地址是01,那么串口调试助手应该向PLC发送如下数据:
01 0F 05 00 00 08 01 FF BE 80
解释如下:
01:地址码
0F:功能码,10进制就是15
05 00:Y0的地址
00 08:连续对Y0-Y7进行写操作,所以是8个
01:是字节计数,连续对Y0-Y7进行写操作,共计是1个字节
FF:预写的数据,我们要求是对Y0-Y7全部置位
BE 80:计算出的CRC校验
PLC收到命令后,会给串口调试助手返回如下数据:
01 0F 05 00 00 08 54 C1
01:地址
0F:功能码
05 00:Y0地址
00 08:预写的个数,Y0-Y7
54 C1:CRC校验
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:13:56
#17楼
(三)对D寄存器进行读操作,一般使用功能码03,
比如我们要读D0 D1的数据,假如D0=16#0012 D1=16#0034,假如PLC地址是01
应该用串口调试助手给PLC发送如下数据:
01 03 10 00 00 02 C0 CB
解释如下:
01:PLC地址
03:功能码
10 00:D0地址,查上面两个表可知道
00 02:读寄存器的个数,因为读D0 D1两个
C0 CB:计算出的CRC校验
当PLC收到此命令后,会向串口调试助手返回如下数据:
01 03 04 00 12 00 34 5B E1
解释如下:
01:PLC地址
03:功能码
04:字节计数,这里注意一下,因为读的是D0 D1两个寄存器,一个寄存器是16位,也就是2个字节,那么两个寄存器自然就是4个字节了
00 12:D0的数据
00 34:D1的数据
5B E1:CRC校验数据
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:14:54
#18楼
(四)对多路D寄存器进行写操作,一般使用16功能码
比如我们要对D2 D3 D4进行写操作,D2=16#0020,D3=16#0011,D4=16#1001,假如PLC地址是01,串口调试助手应该向PLC发送如下数据:
01 10 10 02 00 03 06 00 20 00 11 10 01 0E 48
解释如下:
01:PLC地址
10:功能码,10进制就是16了
10 02:D2的地址
00 03:预写的寄存器个数,因为写的是D2 D3 D4,所以是00 03
06:字节计数,因为是3个寄存器,所以就是6个字节
00 20:写D2的数据
00 11:写D3的数据
10 01:写D4的数据
0E 48:计算出的CRC校验
当PLC接收到此命令后,会返回如下数据给串口调试助手
01 10 10 02 00 03 25 08
解释如下:
01:PLC地址
10:功能码
10 02:D2地址
00 03:寄存器个数
25 08:CRC校验
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
品牌积分(台达):89
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/4/28 0:16:14
#19楼
附上PLC程序和串口调试助手:
附件:
[本地下载]
附件:
[本地下载]
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006