您现在所在的是:

三菱Mitsubishi

回帖:4个,阅读:1294 [上一页] [1] [下一页]
5779
527383814
文章数:230
年度积分:258
历史总积分:5779
注册时间:2014/9/11
发站内信
发表于:2021/8/5 18:41:08
#0楼
我想学习下三菱mc协议  是以fx3u 为学习目标   但是三菱的《MELSEC通讯协议参考手册》只有L和Q系列的内容  ,难道fx3u不支持mc协议吗?

附件 Snap3.jpg



42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2021/8/5 19:21:11
#1楼
FX系列的mc协议好像就是编程口协议,可以网上搜一下FX编程口协议
大家一起学习
27947
guanyumou 版主
文章数:10552
年度积分:1130
历史总积分:27947
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2021/8/6 11:15:11
#2楼
FX系列的MC协议应该是计算机链接协议,或者叫专用协议
编程口协议是编程口协议,它的报文格式和MC协议还是不同的
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
2506
yqyyqy 版主
文章数:255
年度积分:50
历史总积分:2506
注册时间:2006/10/18
发站内信
发表于:2021/8/6 16:04:47
#3楼
三菱FX系列PLC的编程口协议
本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线。电缆的 9 芯 D 形插头连接在计算机串口上,另一端连接 PLC 的 RS-422 编程口。
编写 PC 的通信程序可采用汇编语言、各种高级语言,也可以采用工控组态软件或直接采用 PLC 厂家的通信软件。本文采用 VB6 . 0 软件,它必须依据所连接 PLC 的通信规程来编写通信协议,所以先简单介绍 FX 系列 PLC 的通信协议。
数据传输格式
FX 系列 PLC 采用异步格式,由 1 位起始位、 7 位数据位、 1 位偶校验位及1位停止位组成,波特率为 9600bps ,字符为 ASCII码。
PLC的存储单元分别为: X 为输入继电器; Y 为输出继电器; M 为辅助继电器; S 为状态元件; T 为定时器; C 为计数器; D 为数据寄存器。

三菱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”。

设备状态读取与写入
地址算法为:address=address×2+1000h
1、DEVICE READ(读出软设备状态值)
计算机向PLC发送:
始          命令             首地址                        位数             终                 和校验
STX       CMD             GROUP ADDRESS       BYTES         ETX              SUM
PLC 返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM
举例:PC 从 PLC 中读取数据
假设 PC 要从 PLC 中读入从 D123 开始的 4 个字节的数据 ( 占用两个数据寄存器: D123 、 D124) ,其报文如表 5 所示。
根据三菱 FX 系列 PLC 编程口通信协议,地址算法为
address=address×2+1000h
将地址 123 转换成十六进制为 7Bh ,因此首地址为:
address=addressx2+1000h=7Bhx2+1000h=10F 6h .
再转换成 ASCII 码为 31h,30h,46h,36h
校验和 SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H ,溢出部分不计,故 SUMH 为 "7" , SUML 为 "4" ,相应的 ASC Ⅱ码为“ 37H ”和“ 34H ”。
计算机向PLC发送:
始     命令   首地址     位数     终     和校验
   STX
02h    CMD
30h   GROUP ADDRESS
31h,30h,46h,36h    BYTES
30h,34h   ETX
03h    SUM
37h,34h
PLC返回,从指定的存储器单元读到3584这个数据
STX 1ST DATA   ND DATA   ....     LAST DATA     ETX   SUM

  02h   33h     35h   38h   34h   03h     44h,36h
   2、DEVICE WRITE(向PLC 软设备写入值)
计算机向PLC发送:
始          命令      首地址          位数             数据             终                  和校验
PLC 返回
ACK (06H) 接受正确
NAK (15H) 接受错误
举例:向D123开始的两个存储器中写入1234,ABCD

  始     命令   首地址   位数     数据     终     和校验
  STX   CMD     GROUP ADDRESS     BYTES     1ST DATA     2ND DATA     ......     LAST DATA   ETX     SUM

  02h     31h     31h,30h,46h,36h     30h,34h     33h,34h,31h,32h,43h,44h,41h,42h     03h     34h,39h

PLC返回:ACK (06H) 接受正确 ;或者是NAK (15H) 接受错误

位设备强制置位/复位
设备强制中的地址公式:Address=Address/8+100h
设备强制中的地址公式:Address=Address * 100h + (*) (必须为4位,不足4位前面补0)
注:*号所代表值:
C:14 M:8 T:6 Y:5 X:4 S:0
如对M2置位,则为地址为:2*256(100H)+8=0520 转为十六进制为:0208 再换为ASCII就是: 30 32 30 38

FORCE ON 置位
始                 命令             地址                    终                 和校验
STX              CMD             ADDRESS            ETX              SUM
02h               37h               address                 03h             sum

  始     命令   地址   终   和校验
STX   CMD   ADDRESS   ETX   SUM
02h   37h   address   03h   sum

FORCE OFF 复位
始                 命令             地址                    终                 和校验
STX              CMD             ADDRESS            ETX              SUM
02h               38h               address                 03h               sum

 始   命令   地址   终   和校验
  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)
37231
cvlsam 版主
文章数:12401
年度积分:1583
历史总积分:37231
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2021/8/6 16:11:20
#4楼
以下是引用5273838142021/8/5 18:41:08的发言:
我想学习下三菱mc协议  是以fx3u 为学习目标   但是三菱的《MELSEC通讯协议参考手册》只有L和Q系列的内容  ,难道fx3u不支持mc协议吗?

附件 Snap3.jpg




FX3U通讯应该看这本:
附件 workpicture1.jpg

Good Luck~

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

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

78.0005