哪位前辈用过三菱的三菱plc串口通信信模块啊?我用三菱的通信协议支持功能,读取电表的总电能,数据溢出怎么解决?

您现在所在的是:
三菱Mitsubishi
→ 浏览主题:
* 帖子主题:
文章数:661
年度积分:53
历史总积分:2308
注册时间:
网上收到1篇文章介绍三菱PLC编程口协议,而下面又讲了专用协议。难道编程口有两种格式的协议?大家来讨论下。我试了编程口协议,文章开头介绍的格式能正确读出PLC数据。然而实在不明白怎么又跑出个专用协议,该以哪个为准,以及专用协议的作用。然后按专用协议一览表搞出来的字符串输入串口调试助手,竟然回复全是错误代码15,这是为什么?难道这协议是某人随便编出来骗人的?大家讨论一下。
& & & & & & & & & & & & & & & & & & & & & & & &该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。
通讯格式:
命令 命令码 目标设备
DEVICE READ CMD "0" X,Y,M,S,T,C,D
DEVICE WRITE CMD "1" &X,Y,M,S,T,C,D
FORCE ON CMD " 7" X,Y,M,S,T,C
FORCE OFF CMD &"8" &X,Y,M,S,T,C
传输格式: RS232C
波特率: 9600bps
奇偶: even
校验: 累加方式(和校验)
字符: ASCII 
16进制代码:
ENQ 05H 请求
ACK 06H PLC正确响应
NAK 15H PLC错误响应
STX 02H 报文开始
ETX 03H 报文结束
帧格式:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
例子:
STX ,CMD ,ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
SUM=CMD+......+ETX;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位
1、DEVICE READ(读出软设备状态值)
计算机向PLC发送:
始 命令 首地址 位数 终 和校验
STX CMD GROUP ADDRESS BYTES ETX SUM
例子:从D123开始读取4个字节数据
02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h
地址算法:address=address*2+1000h
再转换成ASCII
31h,30h,46h,36h
PLC返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM
注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h 33h 35h 38h 34h 03h 44h,36h
2、DEVICE WRITE(向PLC软设备写入值)
始 命令 首地址 位数 数据 终 和校验
STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM
例子:向D123开始的两个存储器中写入1234,ABCD
02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h
PLC返回
ACK (06H) 接受正确
NAK (15H) 接受错误
3、位设备强制置位/复位
FORCE ON置位
始 命令 地址 终 和校验
STX CMD ADDRESS ETX SUM
02h 37h address 03h sum
FORCE OFF复位
始 命令 地址 终 和校验
STX CMD ADDRESS ETX SUM
02h 38h address 03h sum
PLC返回
ACK(06H) 接受正确
NAK(15H) 接受错误
设备强制中的地址公式:Address=Address/8+100h
说明:
1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。
三菱FX系列PLC编程口通信源代码
fx_comm.h
FX系列PLC四种通信模式的特性
  首先讲讲FX系列PLC的通信方式。
  FX系列PLC根据使用的通信模块与协议不同,分为以下四种通信模式:
  1、PLC的N:N通信方式
  2、PLC双机并联通信方式
  3、PLC与计算机专有协议通信方式(无须梯形图,电脑直接读写操纵PLC)
  4、PLC与计算机无协议通信方式(梯形图RS指令方式,可自定义通信协议)
  以下将详细列出各通信模式的特性:
  N:N网络 PLC并联 专用协议计算机连接 无协议通信
传输标准 RS485 RS485/RS422 RS485/RS422或RS232
传输距离 500m RS485/RS422:500mRS232:15m
连接数量 8站 1:1 1:N(N&=16) 1:1
通信方式 半双工 FX,FX2c,FXon:半双工FX2n: 全双工
数据长度 固定 7bit/8bit
校验 &无/奇/偶
停止位 &1bit/2bit
波特率 38400bps 19200bps 300/600/00/
头字符 固定 无/有效
尾字符 &
控制线 ------
协议 --- 格式1/格式4 无
和校验 固定 无/有效
适用机型 FX2n,FXon FX2n,FX,FX2c FX2n,FXon,FX,FX2c
FX系列PLC专用协议通信指令一览
&以下将详细列出PLC专用协议通信的指令:
指令 注释  
BR 以1点为单位,读出位元件的状态  
WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值  
BW 以1点为单位,写入位元件的状态  
WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件  
BT 以1点为单位,SET/RESET 位元件  
WT 以16点为单位,SET/RESET 位元件,或写入值到字元件  
RR 控制PLC运行RUN  
RS 控制PLC停止STOP  
PC 读出PLC设备类型  
TT 连接测试  
注:位元件包括X,Y,M,S以及T,C的线圈等;
  字元件包括D,T,C,KnX,KnY,KnM等。
FX系列PLC专用协议通信指令格式详解
 约定说明:
     ENQ为请求标志,ASCII值5,VB中以chr(5)表示;
     ACK为正确标志,ASCII值6,VB中以chr(6)表示;
     STX为请求标志,ASCII值2,VB中以chr(2)表示;
     EXT为请求标志,ASCII值3,VB中以chr(3)表示;
     表格中红色字为需要求和效验的部分;
     和效验为每一项的ASCII值的总和转换成十六进制后区低两位;
     站号、PLC号、元件数量、和效验都是以十六进制表示;
     等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH。
  1、批量读出位元件--BR指令
   &格式:
1 2 3 4 5 6 7 8 & & & & & & 15 16 17
PC侧: ENQ 站号 PLC号 BR 延时 首地址 数量 和效验 & & & ACK 站号 PLC号
PLC侧: & & & & STX 站号 PLC号 数据 EXT 和效验 &
& & & & & & & & 9 10 11 12 13 14 & & &
   [注] 上述中:1、"PLC号"系统默认为"FF";2、"首地址 "应以十进制表示,如首地址"X0018"表示从X寄存器的第18地址单元开始读取I/O量;3、"数量"表示读取的I/O量个数;4、"和效验"是指从"站号"到"数量"之间的各代码的ASCII码的累加和;5、PLC侧的响应码中"和效验"是指从"站号"到"EXT"之间的各代码的ASCII码的累加和。6、可以读出"X"、"Y"和"M"寄存器的内容。
例如:要读出站号为0的Fx2n系列PLC的X00到X08共9点的状态值,延时100ms,假设采用Communication Format(D8120)的Format 1 方式::
注 &释: 请求 站号 PLC号 命令 延时 元件首地址 元件数量 和效验
代 &码: ENQ 0 0 F F B R A X 0 0 0 0 0 9 4 2
ASCII码: 05H 30H 30H 46H 46H 42H 52H 41H 58H 30H 30H 30H 30H 30H 35H 34H 32H
  您只要将以上兰色部分的代码以字符串形式(VB中可以表示为CHR(5)&" 00FFBRAX")发送到PLC,就会有正确的回应信息,如下:
注 释: 头 站号 PLC号 元件首地址 尾 和效验
代 码: STX 0 0 F F 0 0 1 1 0 1 1 0 1 EXT 0 5
ASCII码: 02H 30H 30H 46H 46H 30H 30H 31H 31H 30H 31H 31H 30H 31H 03H 30H 35H
  若发送码有误,则有以下回应:
注 释: 头 站号 PLC号 和效验
代 码: NAK 0 0 F F 0 6
ASCII码: 15H 30H 30H 46H 46H 30H 36H
2、批量读出字元件--WR指令
  格式:
1 2 3 4 5 6 7 8 & & & & & & 15 16 17
PC侧: ENQ 站号 PLC号 WR 延时 首地址 数量 和效验 & & & ACK 站号 PLC号
PLC侧: & & & & STX 站号 PLC号 数据 EXT 和效验 &
& & & & & & & & 9 10 11 12 13 14 & & &
  该命令使用方法与1(BR)命令相同,不再赘述。
  3、批量写入位元件--BW指令
  格式:
1 2 3 4 5 6 7 8 9 & & &
PC侧: ENQ 站号 PLC号 BW 延时 首地址 数量 写入值 和效验 &
PLC侧: & & & & & ACK 站号 PLC号
& & & & & & & & & 10 11 12
  4、批量写入字元件--WW指令(M寄存器100单元置"1")
  格式:01FFWWAMC
1 2 3 4 5 6 7 8 9 & & &
PC侧: ENQ 站号 PLC号 WW 延时 首地址 数量 写入值 和效验 &
PLC侧: 05H 01 FF &A M1 &0C ACK 站号 PLC号
& & & & & & & & & 10 11 12
 请自行分析以上代码。
请继续关注如何控制PLC的运行/停止。
[此贴子已经被作者于 15:41:15编辑过]
文章数:661
年度积分:53
历史总积分:2308
注册时间:
文章开头的那种协议,用串口调试正确,那么能否按这种帧格式用VB编程序通信,文中注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h 33h 35h 38h 34h 03h 44h,36h
这句话是说从某个寄存器读取到的值是3584吗而我得到的数据为2 (30 30 30 45) 3 44 38为括号的现象怎么就不一样呢,我读出数这样算就是3584,45H=E=14D &那么256*14=3584 & &这又怎么解释呢(256是因为每满255就进为总共进了E=14位得出的)
pan_xiansheng
文章数:1321
年度积分:575
历史总积分:8622
注册时间:
2015论坛贡献奖
两种协议的接口不一样,编程口协议的通讯接口是编程口,采用的是232。
专用协议的接口通讯卡(板),采用的是485接口。
pan_xiansheng
文章数:1321
年度积分:575
历史总积分:8622
注册时间:
2015论坛贡献奖
以下是读寄存器数值样例:
文章数:2433
年度积分:50
历史总积分:4455
注册时间:
文章数:1029
年度积分:412
历史总积分:2476
注册时间:
编程口走的是232的协议。
guanyumou 版主
文章数:5957
年度积分:917
历史总积分:11379
注册时间:
2017春节活动(三)
以下是引用yecao2003在 11:13:15的发言:
编程口走的是232的协议。
这句话不对,应该说:
编程口的物理层是RS422,走的通信协议是编程口协议!
guanyumou 版主
文章数:5957
年度积分:917
历史总积分:11379
注册时间:
2017春节活动(三)
以下是引用pan_xiansheng在 17:04:59的发言:
两种协议的接口不一样,编程口协议的通讯接口是编程口,采用的是232。
专用协议的接口通讯卡(板),采用的是485接口。
编程口物理层是RS422,不是RS232,通信协议是编程口协议!
专用协议,即就是计算机链接协议,通过扩展232BD或者485BD可以输出该协议!
文章数:1029
年度积分:412
历史总积分:2476
注册时间:
以下是引用guanyumou在 12:40:48的发言:
以下是引用yecao2003在 11:13:15的发言:
编程口走的是232的协议。
这句话不对,应该说:
编程口的物理层是RS422,走的通信协议是编程口协议!
谢谢指正。
年度积分:50
历史总积分:50
注册时间:
回复 #3楼 pan_xiansheng
您好,这个地址计算方式可以从哪个手册查到?普通读“0”和扩展读“E00”有什么不同,什么情况下使用“E00”?
工控学堂推荐视频:基于三菱通用变频器三菱PLC的风机变频节能改造doc下载_爱问共享资料
基于三菱通用变频器三菱PLC的风机变频节能改造.doc
基于三菱通用变频器三菱PLC的风机变频节能改造.doc
基于三菱通用变频器三菱PLC的风机变频节能改造.doc
简介:本文档为《基于三菱通用变频器三菱PLC的风机变频节能改造doc》,可适用于高等教育领域,主题内容包含基于三菱通用变频器三菱PLC的风机变频节能改造沈阳工程学院毕业设计,论文前言能源是国家重要的物质基础能源的供需矛盾已成为制约我国社会主义经济建设的主符等。
侵权或盗版
*若权利人发现爱问平台上用户上传内容侵犯了其作品的信息网络传播权等合法权益时,请按照平台要求书面通知爱问!
赌博犯罪类
在此可输入您对该资料的评论~
添加成功至
资料评价:豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
三菱L系列串行通信模块
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口介绍一下,这是三菱PLC-FX编程口通信协议及通信实操,你会不会?介绍一下,这是三菱PLC-FX编程口通信协议及通信实操,你会不会?读过天百家号很多控制都采用FX系列PLC,也非常简单易学。但如果说,我们想用上位机与PLC通信,好不好弄呢?比如VB,LabView,再简单点:串口助手。FX编程口协议没有公开,最近做了个CB与FX3U的系统,所以和大家分享一下。CB软件界面涉及公司机密,就不便放出来给大家看,用串口调试助手V2.1代替,一样的道理。关于上位机的学习,大家可以网上下载点资料来参考。下面就给出整个测试过程,并对部分协议地址做详尽的见解。准备:FX3U(FX系统的均可)、串口调试助手V2.1、SC-09通信线(或者SC-09-USB,我用的是SC-09-USB,因为串口助手帮我们完成USB转串口这部分,如果用VB或其他上位机通信,需要用SC-09通信线,要求电脑有DB9串口)串口助手FX-PLCSC-09-USB通信线SC-09-DB9通信线用SC-09-USB通信线一头连接电脑、一头连接编程口一、通信传输格式设置1位起始位、7位数据位、偶校验、1位停止位,波特率9600,传输字符格式为ASCII码。所以串口助手COM设置如下(PLC不用设置):一、通信指令PLC只能对上位机发出的指令做回答,不能主动命令上位机。编程口通信有4条指令,代码分别如下:PLC收到上位机指令后,做出回答如下:二、通信格式三、元件地址那地址是怎么得来的呢?其实是可以查表得来。表格1 只列出部分位元件的地址定时器T、计数器C的地址,大家可以去网上收集资料,后面我测试没用到这些类型的元件,所以就没有列出这些地址表。下面给出寄存器D的地址值,范围是D0-D511,给出框架,可按规律自己补齐地址。表格2 一般寄存器D的部分元件地址表适用强制(置位,复位)指令是适用的地址与表格1是不一样的,这点要注意。为了大家更加清楚,下面给出Y、M置位/复位的元件地址,其他的S、X、T、C这部分地址,网上自己搜搜。表格2 强制Y、强制M的部分位元件地址表四、通信实操将写好的PLC程序灌入PLC中,测试PLC程序如下:GX Work2创建的测试程序上电,RUN,PLC的状态如下:只有Y31的状态为1,其余的为01、通信测试串口助手发送05h,PLC回复06h,则连接正常。若回复15h,则下位机不存在。(注意:在串口助手与PLC通信过程中,请确认GX Work2已关闭工程)通信正常2、写指令(CMD内容为31h)实操:使Y0~Y7的状态为 0 1 0 1 1 0 1 0 (16进制为5A,转为ASCII码为35h 41h)使Y0~Y7的状态为 0 1 0 1 1 0 1 0 的指令格式串口助手发送如下:PLC状态如下:Y0-Y7的指示灯,符合预期PLC回复状态如下:3、读指令(CMD内容为30h)实操:读取D11、D12的值。(D11含2个字节,D12含2个字节,共4个字节)读取D11、D12的值的指令格式D11、D12的值以16进制显示D11、D12现值(16进制):0BC3、01FA。从上图的分析,可知,已经正确从PLC读取D11 D12的值。4、强制ON指令(CMD内容为37h)&&强制OFF指令(CMD内容为38h)实操1:强制M0为ON强制M0为ON的指令格式实操2:强制M0为OFF强制M0为OFF的指令格式本人水平有限,有错误请指正!!!评论交流探讨。希望大家也可以自己动手哦!!!本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。读过天百家号最近更新:简介:带来不一样的精彩,期待您的关注作者最新文章相关文章}

我要回帖

更多关于 fpga串口通信模块 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信