三菱PLC编程口协议.docx
- 文档编号:27218345
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:19
- 大小:236.20KB
三菱PLC编程口协议.docx
《三菱PLC编程口协议.docx》由会员分享,可在线阅读,更多相关《三菱PLC编程口协议.docx(19页珍藏版)》请在冰豆网上搜索。
三菱PLC编程口协议
最近做一个PC通过编程口与FXPLC通讯的程序,在网上找好久,内部软元件的地址还是找不全。
没办法,只好使用串口监视软件分析GXDeveloperPLC编程软件发送的代码
三菱PLC编程口通讯协议
一、三菱PLC编程口通讯协议
三菱PLC编程口的迪讯协议叱较简单,只有四个命令,即;
命令
命令码
F1标设备
DEVICEREADCMD
”0"
X,Y,M,S,T,C,D
DEVICEWRITECMD
X,Y,M,S,T,C,D
FORCEOSCMD
”7”
X,Y,M,S,T,C
FORCEOFFCMD
"8"
X,Y,M,S,T,C
五个标示:
EXQ
0511
请求
ACK
06H
PLC正确响应
NAK
1511
PLC错误响应
STX
02H
报文开始
ETX
0311
报文结束
使用累加方式的和校验,帧格式如下;
STXCMDDATADATAETXSUM(upper)SUM(lower)
和校验;
SLM=CMD-……十ETX。
如SUM=73H,SUM=“73”°
Public
Const
PLCDBaseAddRess=4096
Public
Const
PLCDSpecialBaseAddRess=3584
Public
Const
PLC_Y_Gtoup_Base_AddRess=160
Public
Const
PLC_PY_Group_Base_AddRess二672
Public
Const
PLC_T_Group_Base^AddRess=192
Public
Const
PLC_0T_Group_Base_AddRess=701
Public
Const
PLCRTGroupBaseAddRess二1216
Public
Const
PLC_\4_SINGLE_Base_AddRess=2018(命令为7或8时)
Public
Const
PLC_\LGroup_Base_AddRess=256
Public
Const
PLCPMGroupBaseAddRess=763
Public
Const
PLC_S_Gtoup_Base_AddRess二0
Public
Const
PLC_X_Group_Base_AddRes5=128
Public
Const
PLC_C_Group_Base_AddRess二448
Public
Const
PLC_OC_Group_Base_AddRess=960
Public
Const
PLCRCGroupBaseAddRess=1472
Public
Const
PLC_TV_Group_Base_AddRess=2018
Public
Const
PLC_CV16_Group_Base_AddRess=2560
Public
Const
PLCCV32GroupBaseAddRess二3072
当我们用DEVICEREAD命令时,D100地址=100*2+4096:
M1O0地址=100+256:
不同的是D类空寄存器17:
放的是字,M奇存希存放的是位,同样是渎两个字卩,D100返回的就是PLC中D100地址的值,M类型寄存器返冋的是M100到山16的值。
所以半我们用FORCEON命令时,M100寄存器地址=100-2048:
这也没有什么复杂的,不址吗?
可是三菱公司好像不甘F如此,FORCE0N/0ff命令中地址排列与DEVICEREAD/URITE不同,是低位在前高位在后。
如Y20,地址是0510H,代码中4个字节地址表示为:
1005。
(注总:
Y寄存器为八进制,如Y20地址=16+1280=0510H)比实一点技术含炭都没仅就是拐了几个弯.偏偏很多时候又不都告诉你,让人浪费不少时间。
不废话了,自己做个程序试试吧。
由于没有寄存器类型信息,所以地址的汁算十分关键,如D100和M100分别对应哪个
地址呢?
下面就是三菱Fx系列PLC地址对应表:
当我们用DEVICEREAD命令时,D100地址=100*2+4096:
M100地址=100+256:
不同的是D类型寄存器存放的是字,M寄存器存放的是位,同样是读两个字节,D100返回的就是PLC中D100地址的值,M类型寄存器返回的是M100到Ml16的值。
所以当我们用FORCEON命令时,M100寄存器地址=100+2048;
这也没有什么复杂的,不是吗?
可是三菱公司好像不甘于如此,FORCEON/Off命令中地址排列与DEVICEREAD/WRITE不同,是低位在前高位在后。
如Y20,地址是0510H,代码中4个字节地址表示为:
1005。
(注意:
Y寄存器为八进制,如Y20地址=16+1280=0510H)
三菱FX系列PLC编程口通信协议总览
该协议实际上适用丁-PLC编程端口以及FX-232AW模块的通信。
感谢网友visualboy提供。
通讯格式:
命令命令码目标设备
DEVICEREADCMD"0"X,Y,M,S,T,C,D//设备读
DEVICEWRITECMD"1"X,Y,M,S,T,C,D//设备写
FORCEONCMD”VX,Y,M,S,T,C//置位
FORCEOFFCMD"8〃X,Y,M,S,T,C//复位
传输格式:
RS232C
波特率:
9600bps
奇偶:
even
校验:
累加方式(和校验)
字符:
ASCII
16进制代码:
ENQ
05H
请求
ACK
06H
PLC正确响应
NAK
15H
PLC错误响应
STX
02H
报文开始
ETX
03H
报文结束
帧格式:
STXCMDDATADATAETXSUM(upper)SUM(lower)
例子:
STX,CMD,ADDRESS,BYTES,ETX,SUM
02H,30H,31H,30H,46H,36H,30H,34H,03H,37比34H
SUM二CMD-+ETX;
30h十3lh十30h+46h+36h+30h+34h+03h二74h;
累加和超过两位取低两位
命令格式
1、DEVICEREAD(读出软设备状态值)
计算机向PLC发送:
始命令首地址位数终和校验
STXCMDGROUPADDRESSBYTESETXSUM
例子:
从D123开始读取4个字节数据
02h30h31h,30h,46h,36h30h,34h03h37h,34h
地址算法:
address=address*2+1OOOh
再转换成ASCII
31h,30h,46h,36h
PLC返回
STX1STDATA2NDDATALASTDATAETXSUM
注:
最多可以读取64个字节的数据
例子:
从指定的存储器单元读到3584这个数据
02h33h35h38h34h03h44h,36h
2、DEVICEWRITE(向PLC软设备写入值)
始命令首地址位数数据终和校验
STXCMDGROUPADDRESSBYTES1STDATA2NDDATALASTDAT
AETXSUM
例子:
向D123开始的两个存储器中写入1234,ABCD
02h31h31h,30h,46h,36h30h,34h33h,34h,31h,32h,43h,44h,41h,42h03h3
4h,39h
PLC返回
ACK(06H)接受正确
NAK(15H)接受错误3、位设备强制置位/复位
FORCEON置位
始命令地址终和校验
STXCMDADDRESSETXSUM
02h37haddress03hsum
FORCEOFF复位
始命令地址终和校验
STXCMDADDRESSETXSUM
02h38haddress03hsum
PLC返回
ACK(06H)接受正确
NAK(15H)接受错误
设备强制中的地址公式:
**\ddress=Address/8+100h
说明:
1・帧中的BYTES表示需耍读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。
通过串口监视得到的数据如下:
PLC型号:
FXON
使用GXDeveloper的在线一调试一软元件测试功能
以下列出不同的操作发送的不同内容,前面一段是
CII码
//////////////////////////////////CMD
023730303035034646
//////////////////////////////////CMD
023830303035033030
//////////////////////////////////CMD
023730313035033030
//////////////////////////////////CMD
023830313035033031
Hex码后面一段是对应的AS
ONY0//////////////////
・70005.FF
OFFY0/////////////////////
・80005.00
ON¥1////////////////////
・70105.00
OFFYl//////////////////
・80105.01
//////////////////////////////////CMD
023730303034034645
//////////////////////////////////CMD
023830303034034646
ONXO//////////////////
・70004.FE
OFFX0/////////////////////
・80004.FF
//////////////////////////////////CMDON
XI//////////////////
023730313034034646
.70104.FF
//////////////////////////////////CMD
OFFXI//////////////////
023830313034033030
・80104.00
//////////////////////////////////CMDON
TO//////////////////
023730303036033030
・70006.00
//////////////////////////////////CMD
OFFTO//////////////////
023830303036033031
・80006.01
A\
畀9P£00£0£IS0£8£SO
即9b£0OSOSISOSLZSO
即9P£00£0£0£0£8£SO
££OS£08£0£0£0£8£20
TSl££0的0£l£0£8£SO
(DU//////////////////////////////////
^//////////////////////////////////
(DU//////////////////////////////////
TS0££09£0£I£0£ZSSO
(DO//////////////////////////////////
WRITEDO15AB16Bit
//////////////////////////////////CMD
/////
313503・1100002AB15.
023131303030303241423430
40
//////////////////////////////////CMD
WRITEDI15AB15AB32Bit////////
0231
31
30303030344142
313541・1100004AB15A
4231
35
033242
B15.2B
/////
3437
47
/////////
B15.32
/////
3530
50
/////////
B15.3B
以上是用FX-ONPLC
时的情况,从上而的数据很容易分析出内部软元件的地址,有趣
的是在换成FX-1N时发现有所不同
FX-1NPLC
以下列出不同的操作发送的不同内容
//////////////////////////////////CMDON
YO//////////////////
02453730303043033532
・E7000C.52
//////////////////////////////////CMDOFF
YO/////////////////////
02453830303043033533
・E8000C.53
//////////////////////////////////CMDON
Yl////////////////////
02453730313043033533
・E7010C.53
//////////////////////////////////CMDOFF
Yl//////////////////
02453830313043033534
・E8010C.54
//////////////////////////////////CMDON
xo//////////////////
02453730303132033432
・E70012.42
//////////////////////////////////CMDOFF
xo/////////////////////
02453830303132033433
.E80012.43
//////////////////////////////////CMDON
XI//////////////////
02453730313132033433
・E70112.43
//////////////////////////////////CMDOFF
XI//////////////////
02453830313132033434
.E80112.44
//////////////////////////////////CMDON
TO//////////////////
02453730303130033430
・E70010.40
//////////////////////////////////CMDOFF
TO//////////////////
02453830303130033431
.E80010.41
//////////////////////////////////CMDON
Tl//////////////////
02453730313130033431
・E70110.41
//////////////////////////////////CMDOFF
Tl/////////////////
02453830313130033432
・E80110.42
//////////////////////////////////CMDON
co//////////////////
02453730303046033535
・E7000F.55
//////////////////////////////////CMDOFF
co//////////////////////
02453830303046033536
・E8000F.56
A\
/////////
•SI9
¥20000^013•
空0£0£0£0£応0£I££bSO
/////
////////////^19919V9IOQ31IHM
(DO//////////////////////////////////
9^^11083-
9£応£0応l£I£0£8£聊SO
//////////////////////IS
(DO//////////////////////////////////
幼予noz』・
££応£0MI£I£0£LZ聊SO
//////////////////IS
NO
(DO//////////////////////////////////
9^^10083-
応£0MI£0£0£8£聊SO
(BO//////////////////////////////////
MM£0Ml£0£0£Z£曲SO
T£X£00£0£I£0£8£聊20
0£M£00£0£l£0£LZ曲SO
0£X£00£0£0£0£8£护SO
9P£££00£0£OS0£Z£SO
L££09D0£I£0£8£聊SO
9££££09P0£l£0£LZ曲SO
(DO//////////////////////////////////
B15A
42313503413
5
B15.A5
////////
/////////////CMD
WRITETO15AB16Bit///////////
/////
024531
30313030303032
4142313503
.E10100002A
B15.
423
B5
//////////////////////////////////CMD
WRITET115AB15AB
32Bit////////
/////////
0245
31
30313030323034
41423135
41
•E10100204AB1
5A
4231
35
03413
B15.A2
////////
////////////////CMD
WRITECO15AB
16Bit
//////////
/////
024531
30304130303032
41423135
03
・E100A0002A
B15.
433
C5
//////////////////////////////////CMD
WRITECl15AB15AB
32Bit////////
/////////
0245
31
30304130323034
4142313541
・E100A0204A
B15A
4231
35
03423
B15.B2
不同的地方在发送的命令多了个"E"Hex代码是55"
CMDfx-ONfx-IN
READ
CMD"0〃
CMD"E0"
WRITE
CMD”1"
CMD"E1"
ON
CMD”7"
CMD"E7
OFF
CMD"8"
CMD"E8"
另外软元件地址也有所不同
但是通过实验证实第一种不带"E"的命令格式和地址对fx-lN同样可以正确操作,也就是说fx-lN兼容fx-ON的通讯格式。
最后得出结论,Fx-1N因为软元件的范围比FX-ON的范围有很大的增加,使用FX-ON的地址定义无法满足FX-1N的需求,另外定义了地址,发送命令也做一些区别,但是FX-1N同样兼容原來的格式,只是使用原來的格式无法访问所有的元件.
串口监视软件和PX通讯程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三菱 PLC 编程 协议