三菱FX系列通信协议.docx

上传人:b****2 文档编号:2060789 上传时间:2023-05-02 格式:DOCX 页数:8 大小:17.78KB
下载 相关 举报
三菱FX系列通信协议.docx_第1页
第1页 / 共8页
三菱FX系列通信协议.docx_第2页
第2页 / 共8页
三菱FX系列通信协议.docx_第3页
第3页 / 共8页
三菱FX系列通信协议.docx_第4页
第4页 / 共8页
三菱FX系列通信协议.docx_第5页
第5页 / 共8页
三菱FX系列通信协议.docx_第6页
第6页 / 共8页
三菱FX系列通信协议.docx_第7页
第7页 / 共8页
三菱FX系列通信协议.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

三菱FX系列通信协议.docx

《三菱FX系列通信协议.docx》由会员分享,可在线阅读,更多相关《三菱FX系列通信协议.docx(8页珍藏版)》请在冰点文库上搜索。

三菱FX系列通信协议.docx

三菱FX系列通信协议

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编程口通信协议总览

该协议实际上适用于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/1200/2400/4800/9600/19200

头字符 固定 无/有效

尾字符  

控制线 ------ 

协议 --- 格式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)&" 00FFBRAX00000942")发送到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")

  格式:

01FFWWAM01000100010C

  1 2 3 4 5 6 7 8 9      

PC侧:

 ENQ 站号 PLC号 WW 延时 首地址 数量 写入值 和效验   

PLC侧:

 05H 01 FF  A M0100 01 0001  0C ACK 站号 PLC号

                    10 11 12

 请自行分析以上代码。

 请继续关注如何控制PLC的运行/停止。

三菱PLC与PC机通讯的VB源程序 

PLC与PC机通讯的VB源程序大体如下:

采用的是FX232BD通讯模块,协议就是FX通讯协议。

‘强制PLC为RUN

Private Sub command1_Click()

Dim dat As String

commli.OutBufferCount = 0

commli.InBufferCount = 0

dat = "01FFRR0"

commli.Output = Chr$(5) + dat + SumChk(dat)

End Sub

‘强制PLC为STOP

Private Sub command2_Click()

Dim dat As String

commli.OutBufferCount = 0

commli.InBufferCount = 0

dat = "01FFRS0"

commli.Output = Chr$(5) + dat + SumChk(dat)

End Sub

‘强制Y0为1

Private Sub command3_Click()

Dim dat As String

commli.OutBufferCount = 0

commli.InBufferCount = 0

commli.Output = “01FFBW0Y001011”

End Sub

‘强制Y0为0

Private Sub command3_Click()

Dim dat As String

commli.OutBufferCount = 0

commli.InBufferCount

 = 0

commli.Output = “01FFBW0Y001010”

End Sub 

''设置电脑通信参数

Private Sub Commlis()

If commli.PortOpen = True Then

commli.PortOpen = False

End If

If Not commli.PortOpen Then

commli.CommPort = 1 ''通信口

commli.Settings = "9600,N,8,1"

commli.Handshaking = 0

commli.InputLen = 0

commli.OutBufferCount = 0

commli.InBufferCount = 0

commli.PortOpen = True

End If

Exit Sub

End Sub

Private Function SumChk(Dats$) As String

Dim i&

Dim CHK&

For i = 1 To Len(Dats)

CHK = CHK + Asc(Mid(Dats, i, 1))

Next i

SumChk = Right(Hex$(CHK), 2)

End Function

-温馨提示:

如不慎侵犯了您的权益,可联系文库删除处理,感谢您的关注!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2