三菱PLC编程口协议.docx

上传人:b****0 文档编号:17944511 上传时间:2023-08-05 格式:DOCX 页数:13 大小:301.65KB
下载 相关 举报
三菱PLC编程口协议.docx_第1页
第1页 / 共13页
三菱PLC编程口协议.docx_第2页
第2页 / 共13页
三菱PLC编程口协议.docx_第3页
第3页 / 共13页
三菱PLC编程口协议.docx_第4页
第4页 / 共13页
三菱PLC编程口协议.docx_第5页
第5页 / 共13页
三菱PLC编程口协议.docx_第6页
第6页 / 共13页
三菱PLC编程口协议.docx_第7页
第7页 / 共13页
三菱PLC编程口协议.docx_第8页
第8页 / 共13页
三菱PLC编程口协议.docx_第9页
第9页 / 共13页
三菱PLC编程口协议.docx_第10页
第10页 / 共13页
三菱PLC编程口协议.docx_第11页
第11页 / 共13页
三菱PLC编程口协议.docx_第12页
第12页 / 共13页
三菱PLC编程口协议.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

三菱PLC编程口协议.docx

《三菱PLC编程口协议.docx》由会员分享,可在线阅读,更多相关《三菱PLC编程口协议.docx(13页珍藏版)》请在冰点文库上搜索。

三菱PLC编程口协议.docx

三菱PLC编程口协议

最近做一个PC通过编程口与FX PLC通讯的程序,在网上找好久,内部软元件的地址还是找不全。

没办法,只好使用串口监视软件分析 GX Developer PLC编程软件发送的代码

 

 

由于没有寄存器类型信息,所以地址的计算十分关键,如D100和M100分别对应哪个地址呢?

下面就是三菱Fx系列PLC地址对应表:

PublicConstPLC_D_Base_AddRess=4096

PublicConstPLC_D_Special_Base_AddRess=3584

PublicConstPLC_Y_Group_Base_AddRess=160

PublicConstPLC_PY_Group_Base_AddRess=672

PublicConstPLC_T_Group_Base_AddRess=192

PublicConstPLC_OT_Group_Base_AddRess=704

PublicConstPLC_RT_Group_Base_AddRess=1216

PublicConstPLC_M_SINGLE_Base_AddRess=2048(命令为7或8时)

PublicConstPLC_M_Group_Base_AddRess=256

PublicConstPLC_PM_Group_Base_AddRess=768

PublicConstPLC_S_Group_Base_AddRess=0

PublicConstPLC_X_Group_Base_AddRess=128

PublicConstPLC_C_Group_Base_AddRess=448

PublicConstPLC_OC_Group_Base_AddRess=960

PublicConstPLC_RC_Group_Base_AddRess=1472

PublicConstPLC_TV_Group_Base_AddRess=2048

PublicConstPLC_CV16_Group_Base_AddRess=2560

PublicConstPLC_CV32_Group_Base_AddRess=3072

当我们用DEVICEREAD命令时,D100地址=100*2+4096;M100地址=100+256;不同的是D类型寄存器存放的是字,M寄存器存放的是位,同样是读两个字节,D100返回的就是PLC中D100地址的值,M类型寄存器返回的是M100到M116的值。

所以当我们用FORCEON命令时,M100寄存器地址=100+2048;

这也没有什么复杂的,不是吗?

可是三菱公司好像不甘于如此,FORCEON/Off命令中地址排列与DEVICEREAD/WRITE不同,是低位在前高位在后。

如Y20,地址是0510H,代码中4个字节地址表示为:

1005。

(注意:

Y寄存器为八进制,如Y20地址=16+1280=0510H)

 

三菱FX系列PLC编程口通信协议总览

该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。

感谢网友visualboy提供。

通讯格式:

命令 命令码 目标设备 

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的和。

通过串口监视得到的数据如下:

PLC型号:

FX0N

使用 GX Developer 的 在线-调试-软元件测试 功能

以下列出不同的操作发送的不同内容,前面一段是   Hex码 后面一段是对应的ASCII码

//////////////////////////////////CMD ON YO//////////////////

02 37 30 30 30 35 03 46 46     .70005.FF

//////////////////////////////////CMD OFF YO/////////////////////

02 38 30 30 30 35 03 30 30     .80005.00

//////////////////////////////////CMD ON Y1////////////////////

02 37 30 31 30 35 03 30 30     .70105.00

//////////////////////////////////CMD OFF Y1//////////////////

02 38 30 31 30 35 03 30 31     .80105.01

//////////////////////////////////CMD ON XO//////////////////

02 37 30 30 30 34 03 46 45     .70004.FE

//////////////////////////////////CMD OFF XO/////////////////////

02 38 30 30 30 34 03 46 46     .80004.FF

//////////////////////////////////CMD ON X1//////////////////

02 37 30 31 30 34 03 46 46     .70104.FF

//////////////////////////////////CMD OFF X1//////////////////

02 38 30 31 30 34 03 30 30     .80104.00

//////////////////////////////////CMD ON T0//////////////////

02 37 30 30 30 36 03 30 30     .70006.00

//////////////////////////////////CMD OFF T0//////////////////

02 38 30 30 30 36 03 30 31     .80006.01

//////////////////////////////////CMD ON T1//////////////////

02 37 30 31 30 36 03 30 31     .70106.01

//////////////////////////////////CMD OFF T1/////////////////

02 38 30 31 30 36 03 30 32     .80106.02

//////////////////////////////////CMD ON C0//////////////////

02 37 30 30 30 45 03 30 46     .7000E.0F

//////////////////////////////////CMD OFF C0//////////////////////

02 38 30 30 30 45 03 31 30     .8000E.10

//////////////////////////////////CMD ON C1//////////////////

02 37 30 31 30 45 03 31 30     .7010E.10

//////////////////////////////////CMD OFF C1//////////////////////

02 38 30 31 30 45 03 31 31     .8010E.11

//////////////////////////////////CMD ON M0//////////////////

02 37 30 30 30 38 03 30 32     .70008.02

//////////////////////////////////CMD OFF M0//////////////////////

02 38 30 30 30 38 03 30 33     .80008.03

//////////////////////////////////CMD ON M1//////////////////

02 37 30 31 30 38 03 30 33     .70108.03

//////////////////////////////////CMD OFF M1//////////////////////

02 38 30 31 30 38 03 30 34     .80108.04

//////////////////////////////////CMD ON S0//////////////////

02 37 30 30 30 30 03 46 41     .70000.FA

//////////////////////////////////CMD OFF S0//////////////////////

02 38 30 30 30 30 03 46 42     .80000.FB

//////////////////////////////////CMD ON S1//////////////////

02 37 30 31 30 30 03 46 42     .70100.FB

//////////////////////////////////CMD OFF S1//////////////////////

02 38 30 31 30 30 03 46 43     .80100.FC

//////////////////////////////////CMD WRITE D0 15AB 16Bit /////////////////

02 31 31 30 30 30 30 32 41 42 31 35 03  .1100002AB15.

34 30                                         40

//////////////////////////////////CMD WRITE D1 15AB15AB 32Bit /////////////////

02 31 31 30 30 30 30 34 41 42 31 35 41  .1100004AB15A

42 31 35 03 32 42                           B15.2B

//////////////////////////////////CMD WRITE T0 15AB 16Bit /////////////////

02 31 30 38 30 30 30 32 41 42 31 35 03  .1080002AB15.

34 37                                         47

//////////////////////////////////CMD WRITE T1 15AB15AB 32Bit /////////////////

02 31 30 38 30 30 30 34 41 42 31 35 41  .1080004AB15A

42 31 35 03 33 32                           B15.32

//////////////////////////////////CMD WRITE C0 15AB 16Bit /////////////////

02 31 30 41 30 30 30 32 41 42 31 35 03  .10A0002AB15.

35 30                                         50

//////////////////////////////////CMD WRITE C1 15AB15AB 32Bit /////////////////

02 31 30 41 30 30 30 34 41 42 31 35 41  .10A0004AB15A

42 31 35 03 33 42                           B15.3B

以上是用FX-0N PLC 时的情况,从上面的数据很容易分析出内部软元件的地址,有趣的是在换成FX-1N 时发现有所不同

FX-1N PLC

以下列出不同的操作发送的不同内容

//////////////////////////////////CMD ON YO//////////////////

02 45 37 30 30 30 43 03 35 32      .E7000C.52

//////////////////////////////////CMD OFF YO/////////////////////

02 45 38 30 30 30 43 03 35 33      .E8000C.53

//////////////////////////////////CMD ON Y1////////////////////

02 45 37 30 31 30 43 03 35 33      .E7010C.53

//////////////////////////////////CMD OFF Y1//////////////////

02 45 38 30 31 30 43 03 35 34      .E8010C.54

//////////////////////////////////CMD ON XO//////////////////

02 45 37 30 30 31 32 03 34 32      .E70012.42

//////////////////////////////////CMD OFF XO/////////////////////

02 45 38 30 30 31 32 03 34 33      .E80012.43

//////////////////////////////////CMD ON X1//////////////////

02 45 37 30 31 31 32 03 34 33      .E70112.43

//////////////////////////////////CMD OFF X1//////////////////

02 45 38 30 31 31 32 03 34 34      .E80112.44

//////////////////////////////////CMD ON T0//////////////////

02 45 37 30 30 31 30 03 34 30      .E70010.40

//////////////////////////////////CMD OFF T0//////////////////

02 45 38 30 30 31 30 03 34 31      .E80010.41

//////////////////////////////////CMD ON T1//////////////////

02 45 37 30 31 31 30 03 34 31      .E70110.41

//////////////////////////////////CMD OFF T1/////////////////

02 45 38 30 31 31 30 03 34 32      .E80110.42

//////////////////////////////////CMD ON C0//////////////////

02 45 37 30 30 30 46 03 35 35      .E7000F.55

//////////////////////////////////CMD OFF C0//////////////////////

02 45 38 30 30 30 46 03 35 36      .E8000F.56

//////////////////////////////////CMD ON C1//////////////////

02 45 37 30 31 30 46 03 35 36      .E7010F.56

//////////////////////////////////CMD OFF C1//////////////////////

02 45 38 30 31 30 46 03 35 37      .E8010F.57

//////////////////////////////////CMD ON M0//////////////////

02 45 37 30 30 30 30 03 33 46      .E70000.3F

//////////////////////////////////CMD OFF M0//////////////////////

02 45 38 30 30 30 30 03 34 30      .E80000.40

//////////////////////////////////CMD ON M1//////////////////

02 45 37 30 31 30 30 03 34 30      .E70100.40

//////////////////////////////////CMD OFF M1//////////////////////

02 45 38 30 31 30 30 03 34 31      .E80100.41

//////////////////////////////////CMD ON S0//////////////////

02 45 37 30 30 31 34 03 34 34      .E70014.44

//////////////////////////////////CMD OFF S0//////////////////////

02 45 38 30 30 31 34 03 34 35      .E80014.45

//////////////////////////////////CMD ON S1//////////////////

02 45 37 30 31 31 34 03 34 35      .E70114.45

//////////////////////////////////CMD OFF S1//////////////////////

02 45 38 30 31 31 34 03 34 36      .E80114.46

//////////////////////////////////CMD WRITE D0 15AB 16Bit /////////////////

02 45 31 30 34 30 30 30 30 32 41 42 31 35 03   .E10400002AB15.

42 38                                                              B8

//////////////////////////////////CMD WRITE D1 15AB15AB 32Bit /////////////////

02 45 31 30 34 30 30 32 30 34 41 42 31 35 41   .E10400204AB15A

42 31 35 03 41 35                                            B15.A5

//////////////////////////////////CMD WRITE T0 15AB 16Bit /////////////////

02 45 31 30 31 30 30 30 30 32 41 42 3

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

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

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

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