zcb198814
级别: 探索解密
精华主题: 0
发帖数量: 15 个
工控威望: 156 点
下载积分: 1211 分
在线时间: 23(小时)
注册时间: 2011-06-19
最后登录: 2024-11-26
查看zcb198814的 主题 / 回贴
楼主  发表于: 2011-07-03 10:55
一、三菱PLC编程口通讯协议

三菱PLC编程口的通讯协议比较简单,只有四个命令,即:

命令                    命令码             目标设备

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

五个标示:

ENQ            05H             请求

ACK            06H             PLC正确响应

NAK           15H             PLC错误响应

STX             02H             报文开始

ETX             03H             报文结束

使用累加方式的和校验,帧格式如下:

STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)

和校验:

SUM= CMD+……+ETX。 如SUM=73H,SUM=“73”。

1、DEVICE READ(读出软设备状态值)

计算机向PLC发送:

始          命令             首地址                        位数             终                 和校验

STX       CMD             GROUP ADDRESS       BYTES         ETX              SUM

PLC 返回

STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM

2、DEVICE WRITE(向PLC 软设备写入值)

计算机向PLC发送:

始          命令      首地址          位数             数据             终                  和校验

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) 接受错误

以上可以看出,协议非常简单,但是由于没有寄存器类型信息,所以地址的计算十分关键,如D100和M100分别对应哪个地址呢?下面就是三菱Fx系列PLC地址对应表:

Public Const PLC_D_Base_AddRess = 4096

Public Const PLC_D_Special_Base_AddRess = 3584

Public Const PLC_Y_Group_Base_AddRess = 160

Public Const PLC_PY_Group_Base_AddRess = 672

Public Const PLC_T_Group_Base_AddRess = 192

Public Const PLC_OT_Group_Base_AddRess = 704

Public Const PLC_RT_Group_Base_AddRess = 1216

Public Const PLC_M_SINGLE_Base_AddRess = 2048(命令为7或8时)

Public Const PLC_M_Group_Base_AddRess = 256

Public Const PLC_PM_Group_Base_AddRess = 768

Public Const PLC_S_Group_Base_AddRess = 0

Public Const PLC_X_Group_Base_AddRess = 128

Public Const PLC_C_Group_Base_AddRess = 448

Public Const PLC_OC_Group_Base_AddRess = 960

Public Const PLC_RC_Group_Base_AddRess = 1472

Public Const PLC_TV_Group_Base_AddRess = 2048

Public Const PLC_CV16_Group_Base_AddRess = 2560

Public Const PLC_CV32_Group_Base_AddRess = 3072

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

这也没有什么复杂的,不是吗?可是三菱公司好像不甘于如此,FORCE ON/Off命令中地址排列与DEVICE READ/WRITE不同,是低位在前高位在后。如Y20,地址是0510H,代码中4个字节地址表示为:1005。(注意:Y寄存器为八进制,如Y20地址=16+1280=0510H)


ywx51698
级别: 探索解密
精华主题: 0
发帖数量: 53 个
工控威望: 114 点
下载积分: 616 分
在线时间: 21(小时)
注册时间: 2010-12-06
最后登录: 2019-04-22
查看ywx51698的 主题 / 回贴
1楼  发表于: 2011-07-03 13:10
谢谢分享
bogegongkong
什么是生活,生活就是活着。
级别: 略有小成
精华主题: 0
发帖数量: 446 个
工控威望: 414 点
下载积分: 2444 分
在线时间: 563(小时)
注册时间: 2007-07-06
最后登录: 2024-12-10
查看bogegongkong的 主题 / 回贴
2楼  发表于: 2011-07-03 19:31
很详细,谢谢LZ
熟悉轮胎生产工艺流程。专业制造车胎生产设备。提供轮胎工厂公用工程设计,安装。提供轮胎生产设备改造升级服务。愿与各同行探讨工控问题:QQ 1987857377
263286819
以后妈妈再也不用担心我的学习了,so easy.!!左手拿着
级别: 略有小成
精华主题: 0
发帖数量: 166 个
工控威望: 271 点
下载积分: 494 分
在线时间: 132(小时)
注册时间: 2010-11-04
最后登录: 2022-09-01
查看263286819的 主题 / 回贴
3楼  发表于: 2011-07-03 21:45
很強大謝謝
kawasakilu
级别: 略有小成
精华主题: 0
发帖数量: 319 个
工控威望: 380 点
下载积分: 2265 分
在线时间: 90(小时)
注册时间: 2007-04-12
最后登录: 2024-06-29
查看kawasakilu的 主题 / 回贴
4楼  发表于: 2011-07-05 22:01
比较愚钝,这个东西我们可以怎样利用呢?
新闻联播
东方红,太阳升,中国出两个毛泽东,他为人民谋幸福...
级别: 论坛先锋
精华主题: 0
发帖数量: 477 个
工控威望: 1591 点
下载积分: 2654 分
在线时间: 241(小时)
注册时间: 2007-08-05
最后登录: 2022-10-20
查看新闻联播的 主题 / 回贴
5楼  发表于: 2011-07-08 14:19
楼主也应该顺便公布E60、E61、E62、E63...等等等分别是什么命令,