QQ登录

只需一步,快速开始

维纶通触摸屏Memory Map通讯协议

[ 复制链接 ]
31.1.  概要
Memory Map通讯协议类似于 IBM 3764R通讯协议,使用于对应内存数据的变化量较少的场合,
且专为两台设备交换数据的通讯协议。
Memory Map 通讯协议的特征是两台设备必须一方为 master,另一方为slave。
在一般情况下,master 和 slave 并没有建立通讯,只有当某一方所指定的内存数据变化时,通讯才建立。
当双方数据一致后,通讯则马上中断。
所以通讯的目的是保持两台设备(master 和 slave)之间相对应的一块相同大小内存数据的一致性。
其中 master 和 slave 中对应的内存需和 MW(MB)内存具有相同的性质和大小。
HMI 中的 MW(MB)大小皆为 10,000字。
MB和MW都是指向相同的寄存器区块,例如, MB0~MBf对应到MW0的各位, MB10~MB1f对应到 MW1,

如下表所示:
设备名称  格式           范围
MB          DDDDh      DDDD:0~4095 h:0~f(hex)
MW         DDDD        DDDD:0~9999

31.2.  接脚设定
使用Memory Map通讯协议时,master和 slave必须使用相同的通讯参数。其接线方式如下:
(#表示由具体PLC或控制器决定)
界面         RS-232
设备         Master     Slave
对应脚位  TX(#)      RX(#)
               RX(#)     TX(#)
               GND(#)   GND(#)

界面          RS-485 (4W)
设备          Master     Slave   
对应脚位   TX+(#)    RX+(#)
TX-(#)      RX-(#)
RX+(#)     TX+(#)
                RX-(#)    TX-(#)
                GND(#)   GND(#)

31.3.  通讯流程图

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议


Note
 流程2对slave有效,对master无效。
 STX 为通讯请求信号,ACK为响应请求信号,NAK为忙碌信号。

31.4.  通讯数据格式
通讯数据格式可分为两种,MB 指令和MW指令。
对 MB操作的指令格式,请参见下表:
          MB 指令
偏移量   
(字节)
                     格式                          描述
0                   0x02                         对MB操作的标志
1                   0x##                        地址(低字节)
2                   0x##                        位地址(高字节),如果是 MB-18,则 1*16+2=18,为0x12,0x00
3                   0x00(or 0x01)            表示所指定 MB 地址的数据内容(因为是 Bit 类型,只能是 0 或1)
4, 5                0x10, 0x03                结束标志
6                   0x##                        总和检查码;从偏移量0到5之字节进行XOR运算

对 MW操作的指令格式,请参见下表:
                         MW 指令
偏移量 (字节)                 格式          描述
0                                  0x01          对MW操作的标志
1                                  0x##        地址(低字节)  
2                                  0x##        位地址(高字节) ,如果地址数据中包含一个 0x10,
                                                    则在 0x10 后再插入一个0x10,
                                                    地址表示多出一个字节,命令格式相应的向后推移一个字节,
                                                    例如地址为0x10,0x04,则变为0x10,0x10,0x04
3                                  0x##        传送的字节数(由于对字操作,字节数一定为偶数),如果字节数为 0x10,
                                                    则在 0x10 后再插入一个 0x10 命令格式相应的向后推移一个字节
4 to 4+n-1                    0x##(L),
                                    0x##(H)
                                    0x##(L),
                                    0x##(H)…  为 1,2 字节所对应地址为起始地址的数据,
                                                     其中n 为数据的字节数,如果数据中有 0x10,则在 0x10 后再插入一个 0x10,
                                                     而”传送字节数”不变,n 则为 n+1,以次类推
4+n, 4+n+1                  0x10 ,0x03      结束标志
4+n+2                         0x##         总和检查码;对前面所有字节 xor

31.4.1.    通讯范例

范例  1
假设 master 将MW-3 的内容设为0x0a,因为数据更动,master立刻会和slave 建立通讯,而slave接
收到数据后把它对应的MW-3的内容更新为0x0a。其对应过程为:
1. master发送 STX(0x02h)。
2. slave 接收到master 发送的STX(0x02h)后,发送返回命令ACK(0x06h)。
3. master接收到slave 的返回命令ACK(0x06h)。
4. master发送资料0x01,0x03,0x00,0x02,0x0a,0x00,0x10,0x03,0x19,如下表所示:  
偏移量 (字节)      格式        描述
0                       0x01        对 MW操作的标志
1                       0x03        地址(低字节)
2                       0x00        位地址(高字节)
3                       0x02       传送的字节数(MW3为两个字节)
4, 5                  0x0a, 0x00    MW-3 的内容为0x0a,0x00
6, 7                  0x10, 0x03  结束标志
8                      0x19       总和检查码,0x01^0x03^0x00^0x02^0x0a^0x00^0x10^0x03=0x19

5. slave 收到master发送的数据后,发送返回命令ACK(0x06h)。
6. master接收到slave 的返回命令ACK(0x06h)。
通讯完成,master 把更改的 MW 的地址和内容传送给了 slave,slave 再更改 MW 的数据,
使得 master和 slave对应节点地址内容保持一致。

范例  2
如果地址和数据中包括0x10的情况,请注意观察数据格式的变化。
我们假设 slave 把 MW-10 的内容设为 0x10,根据这个协议,slave 立刻会和 master 建立通讯,
从而使得 master 接收到数据后把它对应的 MW-10的内容置为 0x10。

过程为:
1. slave 发送STX(0x02h)。
2. 主方接收到slave发送的STX(0x02h)后,发送返回命令ACK(0x06h)。
3. slave 接收到master 的返回命令ACK(0x06h)。
4. slave 发送资料0x01,0x10,0x10,0x00,0x02,0x10,0x10,0x00,0x10,0x03,0x10
如下表所示:
偏移量(字节)        格式             描述
0                        0x01            对MW操作的标志
1                        0x10            地址(低字节)
2                        0x10            插入一个0x10 字节
3                        0x00             位地址(高字节)
4                       0x02            传送的字节数(MW-10为两个字节)
5                       0x10            MW-10 的低字节内容为0x10
6                        0x10           插入一个0x10 字节
7                       0x00           高字节内容为0x00
8                      0x10           结束标志
9                       0x03
10                    0x10           总和检查码,0x01^0x10^0x10^0x00^0x02^0x10^0x10^0x00^0x10^0x03=0x10   
5. master收到slave发送的数据后,发送返回命令ACK(0x06h)。
6. slave 接收到master 的返回命令ACK(0x06h)。
slave 把更改的 MW 的地址和内容传送给了 master,master 再更改 MW 的数据,
使得 slave 和 master对应节点地址内容保持一致。

31.5.  实作范例
以下将示范两台 HMI如何使用Memory Map通讯协议连接。
Note
 若是两台的型号不同,请分别建立不同的工程文件,或者是在完成第一台HMI的设定后,直接更改  “编
辑” » “系统参数设置”  »  “HMI 属性” 为第二台 HMI 的型号,重新编译工程文件再下载至第二台HMI。

31.5.1.    新增 Memory Map 的步骤
1. 开启EasyBuilder Pro,选择  “开新文件” ,设定HMI型号后,照以下步骤:
2. 点选菜单列  “编辑”,并点击  “系统参数设置”,接着选择  “设备清单” 页面并点选  “新增…” 加入新的设备。
3. “名称” 填入  “Memory Map”,并点选  “PLC”,设定  “所在位置” 为  “本机”。
4. “PLC 类型” 选择  “Memory Map”,并在  “PLC 接口” 选择  “RS-232”。

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议


5. 点击  “设置”,设定如下:

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

6. 完成通讯端口设定后按下  “确定”。
Note
 MT500系列有分为MemoryMap_Master 和MemoryMap_Slave,详情请参考相关手册。
 eMT 3000 系列和MT8000系列选择Memory Map即可。
 “数据位” 必须为8 Bits。
 两台HMI的所有其它设置必须一致。

31.5.2.    元件设定
接着在窗口 10上增加2个元件,「位状态切换开关」和「多状态切换开关」:
新增位状态切换开关,如下图所示:

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议

1. 读取和写入地址的  “PLC名称” 选择  “Memory Map”。
2. 地址选择 MB-0。
3. “开关类型” 选择  “切换开关”。(可选择适合的图片或标签以供辨识)
新增多状态切换开关,如下图所示:

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议


1. 读取和写入地址的  “PLC名称” 选择  “Memory Map”。
2. 地址选择 MW-1。
3. “循环” 选择  “启用”。(可选择适合的图片或标签以供辨识)
31.5.3.    执行结果
将工程文件编译并下载至HMI,再将工程文件下载至第二台HMI。
完成画面可参考下图:

维纶通触摸屏Memory Map通讯协议

维纶通触摸屏Memory Map通讯协议


按一下任意一个按钮,对应另一台触控屏幕的该按钮也将跟着动作,它们的状态将始终保持一致。
一台HMI和任一台控制器之间的通讯其方式与上述类似,
其根本原理是2 台设备的相同寄存器的数据要保持一致。






回复

使用道具 举报

快速回复 返回列表 客服中心 搜索