您现在所在的是:

PLC论坛

回帖:3个,阅读:6083 [上一页] [1] [下一页]
989
powerwave
文章数:6
年度积分:50
历史总积分:989
注册时间:2007/3/16
发站内信
发表于:2007/3/26 19:53:00
#0楼
最近做一个PC通过编程口与FX PLC通讯的程序,在网上找好久,内部软元件的地址还是找不全。没办法,只好使用串口监视软件分析 GX Developer PLC编程软件发送的代码

三菱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 31 35 03   .E10100002AB15.
42 35                                                              B5
//////////////////////////////////CMD WRITE T1 15AB15AB 32Bit /////////////////
02 45 31 30 31 30 30 32 30 34 41 42 31 35 41  .E10100204AB15A
42 31 35 03 41 32                                           B15.A2

//////////////////////////////////CMD WRITE C0 15AB 16Bit /////////////////
02 45 31 30 30 41 30 30 30 32 41 42 31 35 03   .E100A0002AB15.
43 35                                                              C5
//////////////////////////////////CMD WRITE C1 15AB15AB 32Bit /////////////////
02 45 31 30 30 41 30 32 30 34 41 42 31 35 41   .E100A0204AB15A
42 31 35 03 42 32                                           B15.B2

不同的地方在发送的命令多了个"E" Hex代码是"45"
CMD      fx- 0N         fx- 1N
READ    CMD "0"      CMD "E0"
WRITE  CMD "1"      CMD "E1"
ON       CMD " 7"     CMD "E 7"
OFF      CMD "8"      CMD "E8"

另外软元件地址也有所不同
但是通过实验证实第一种不带"E"的命令格式和地址对fx-1N同样可以正确操作,也就是说fx-1N兼容fx-0N的通讯格式。最后得出结论,Fx-1N因为软元件的范围比FX-0N的范围有很大的增加,使用FX-0N的地址定义无法满足FX-1N的需求,另外定义了地址,发送命令也做一些区别,但是FX-1N同样兼容原来的格式,只是使用原来的格式无法访问所有的元件.

串口监视软件 和 PX通讯程序
附件:
[本地下载]
附件:
[本地下载]


[此贴子已经被作者于2007-3-26 19:55:28编辑过]
995
wky320
文章数:4
年度积分:50
历史总积分:995
注册时间:2007/10/10
发站内信
发表于:2008/7/9 22:49:00
#1楼
哪位大哥有FX2N的软元件地址发一分给我好吗

谢谢了

邮箱:wky320@163.com

          ky.wu@mac.minaik.com
650
lin_vam
文章数:1
年度积分:50
历史总积分:650
注册时间:2012/8/4
发站内信
发表于:2012/8/11 9:39:01
#2楼
表情表情
1760
yaosgroup
文章数:258
年度积分:50
历史总积分:1760
注册时间:2011/9/2
发站内信
工控人谈电商
发表于:2014/8/20 15:46:51
#3楼
我们公司也有这事,协议破解不了,只好挂个外挂,就是你说的串口监控。

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

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

78.0005