AIRIOT 物联网低代码平台如何配置三菱 PLC 驱动?
三菱 PLC 驱动配置使用三菱 Melsec 协议(MC 协议)从三菱 PLC 读取数据,仅支持以太网方式。三菱 PLC 都可以通过此协议访问,但是需要对 PLC 进行设置。
AIRIOT 物联网低代码平台如何配置三菱 PLC 驱动,操作如下:
配置说明
windows 环境
如果在 windows 上运行驱动,需要安装 nodejs 运行环境和 npm 工具。
点击链接,下载 windows 安装包,按照说明安装,安装过程可以参考此博客。
【非必须】有的时候由于网络原因,需要使用淘宝镜像加快下载依赖的速度,有以下两种方案。
●执行 npm 命令时加上--registry=https://registry.npm.taobao.org
●安装 cnpm:具体操作参看此博客第三部分。
PLC 通信设置
使用 MC 协议与 PLC 通信需要知道 PLC 的 IP 和端口,且这个端口的通信方式需要是 MC 协议。如果不了解这些设置,需要用 GX works2 软件进行设置。
1 安装 GX works2 软件(已测试过 1.591R 版本,可用)。
2 将 PLC 与安装 GX works2 软件的电脑连接,PLC 端最好使用串口,PC 端需要从设备管理器中确认哪个串口是连通的。
3 打开 GX works2 软件,新建工程,选择正确的系列和机型。
4 连接目标,选择当前连接目标(或新建目标并设置为默认)。设置连接,双击计算机侧 I/F,设置 COM 口。测试连接,可以连接后点击确定。
5 点击顶端导航栏,在线,plc 读取,选择参数(parameter),点击执行,将当前 PLC 设置复制到本地。如果本地有设置会提示是否要覆盖,选择是。有可能提示有当前软件无法处理的参数,有可能是 GX works2 版本不对,可以先读取下来看看。(下图仅供参考,实际上只用选择参数即可)。
6 双击左侧导航栏参数下的 plc 参数,点击以太网端口设置。如果没有此标签说明 GX works2 版本不对,重试后如果还是这样则需要重新安装另一个版本的 GX works2。
7 在以太网端口设置界面,将 IP 修改为安装平台的机器可以访问的地址。通信数据代码设置与 PLC 型号有关,尽量建议选择二进制代码通信。
8 点击打开设置,配置通信端口。一个 PLC 通信通道支持多个连接,选择一个,协议设置为 TCP,打开方式设置为 MC 协议,设置本站端口号(1025~5548 或 5560~65534)。设置完后保存。
测试时可以打开一个数据监视端口,然后通过浏览器访问即可看到 PLC 的状态。
9 记录设置的 IP、端口和通信数据代码设置。
10 点击顶端导航栏,在线,plc 写入,选择参数(parameter),点击执行,将本地 PLC 设置上传到 PLC。
11 将 PLC 断电重启,ping 之前设置的 IP,如果可以 ping 通基本算设置完成。
使用说明
设备 IP 和端口
设备 IP 与以太网端口设置界面中的一致,设置前确保在运行驱动的设备上可以 ping 通。
端口与以太网端口-打开设置界面中的设置一致(协议=TCP,打开方式=MC 协议)。
代码设置
一般 PLC 支持 ASCII 码和二进制码两种代码设置,根据以太网端口设置界面的通信数据代码设置选择其中一种。
可能出现 PLC 不支持 ASCII 码通信或者二进制码通信的情况,请以手册为准。
PLC 类型与帧类型
PLC 类型与帧类型两个参数的选择以设备的用户手册或者对应以太网的用户手册为准,下表仅供参考。PLC 可能支持多种帧类型。
访问路径设置
访问路径是 MC 协议报文的一部分,用以太网通信时有 4 个参数。对于 1E 帧,只能够设置可编程控制器编号,而另外两种帧可以设置四个参数。在配置界面输入的是 10 进制数。
如果运行驱动的计算机与访问对象直接连接时,不用做任何设置。
具体意义参考《MELSEC 通信协议参考手册》第二部分 6.2 节。
点数倍率
仅限于 1E 帧。发现数据点较少时驱动可以读取但是多了却读取不了时,考虑修改这个参数。
MC 协议中,对软元件尽心操作时对一次通信中可以处理的点数(即软元件数量)做出了限制。根据 MC 协议,批量读取字单位时,读取位字软元件和位软元件的数量限制分别是 128 字(2048 点)和 256 点。但是对于部分型号,尽管可以使用 MC 协议通信,这个点数限制往往比 MC 协议中规定的小(比如使用 FX3U-ENET-ADP 时,批量读取字单位时,读取位字软元件和位软元件的数量限制分别是 32 字(256 点)和 64 点)。
这个参数仅限于 1E 帧的数据读取,其意义为 MC 协议中的点数限制与实际设备的点数限制的比值。比如使用 FX3U-ENET-ADP 时,这个参数应该设置为 4。
当驱动可以正常读取数据时,这个参数不需要调整。增加这个参数会使得读取数据时向 PLC 发送的请求数量增加,降低读取效率。
《MELSEC 协议通信参考手册》附录 5
《FX3U-ENET-ADP 中文手册》7.4 节
软元件
软元件是 PLC 存储数据的基本单元,不同类型的软元件除了名称和符号不同外,单元的长度和表记也可能不同。
《MELSEC 协议通信参考手册》8.1 节 软元件代码一览
常见的 X/Y/M/S 软元件都是位类型的(1bit),只能读写 1/0(true/false),而 D 软元件是字类型的,包含 16 个 bit。对于字类型和双字类型的软元件,可以整体的读(用 16 个 bit 表示的数据)、组合起来读(相邻的两个软元件表示一个 32bit 的数据,比如 INT32)以及单独读取某个 bit(返回 true 或 false)。
表记会影响配置数据点时的软元件编号。
软元件名称
配置数据点和指令时都需要写软元件名称,格式略有不同,注意字母都要大写。
软元件名称由四部分组成,其中首字母和编号是必须的:
●首字母:软元件类型,必须为大写。常用的有 D,Y,M 等。PLC 支持的软元件类型与 PLC 型号有关。
●数据类型:(仅读取时有效)将数据点直接转化成特定格式的数据,可缺省。可选值:REAL|FLOAT|DWORD|DINT|WORD|UINT|INT|STR|CHAR|BYTE|BIT。
●编号:软元件编号,从 0 开始,其上限与软元件的类型与 PLC 型号有关。如果软元件的表记是 16 进制的(比如 X,Y),则编号需要写为 16 进制的(比如 XA)。
●位数(非必须):部分软元件既支持字读写也支持位读取,进行位读写时,在编号后加上.和位数(如 D0.2)。
数据读写
写入示例
用指令修改软元件的值时,软元件名称中不能包含数据类型。
对于类型是位的软元件,只能写入 1 或 0。
对于类型是字的软元件,既可以写入一个整数(改变多个 bit 的值),也可以单独写入一个 bit。软元件名称中不包含位数时,写入的是带符号的 INT16,所以范围是从-32768 至 32767,F 位(首位)为符号,1 为负 0 为正;包含位数时,写入的是 1 或 0。
●S0 写入 1:S0 所对应的 bit 为 1。
●D2 写入 7:D2 的前 13 个 bit 是 0,后 3 个 bit 是 1(7=二进制 111)。
●D3 写入 0:D3 的所有位都是 0。
●D3.0 写入 1:D3 的 0 位是 1,其余位是 0。
●D11 写入-32768:D11 的 F 位是 1,其余位是 0。
读取示例
下文中软元件的值与写入示例中写入的值相同。未提及的软元件没有写入过数值,即所有位都是 0。
读取一个 bit 时,返回的是 1 或者 0。
●S0:读取写入示例中的 S0,返回 1。
●D2.0:读取写入示例中的 D10 的第 0 位(最后一个 bit),返回 1。
●D2.3:读取写入示例中的 D10 的第 3 位,返回 0。
●D3.0:读取写入示例中的 D10 的第 0 位,返回 1。
●D3.1:读取写入示例中的 D10 的第 1 位,返回 0。
读取位类型的软元件时,不同数据类型返回的结果不同:
●D11:返回-32768。
●DINT11:因为 D 软元件的缺省类型是 INT,返回-32768。
●DUINT11 或 DWORD11:返回二进制数 1000 0000 0000 0000 对应的无符号整数,即 32768。
有的数据类型是用 32 个 bit 表示的,可以将两个软元的 32 个 bit 一起读出来,此时软元件的编号的意义是起始软元件的编号:
●DDINT2 或 DDWORD2:实际上使用 D2 和 D3 的 32 个 bit 组合成,返回 65543(二进制数 0000 0000 0000 0001 0000 0000 0000 0111),说明是从 D3 的 F 位开始读,以 D2 的 0 位为止。
●DREAL20:将 D20 和 D21 的 32 个 bit 读取为小数,顺序为 D21 的 F 为至 0 位,D20 的 F 位至 0 位。并不是任意一个 32 位二进制数都能对应一个小数(在线互转)。
○选定一个小数:-120.2,以二进制表示为 1100 0010 1111 0110 0110 0110 0110 0110。
○将前 16 位和后 16 位分别写入 D21 和 D20,对应的带符号 INT16 分别为-15626 和 26214。
○读取 DREAL20,返回-123.19999694824219。
○将 26214 写入 D22,读取 DREAL21,返回的是 2.7243517139461285e+23,这是由于此时是从 D22 开始读的。
由于 ASCII 码对应一个 8 位二进制数,一个位类型的软元件可以储存两个 ASCII 码,因此我们可以将软元件读取位字符串。将 D0 和 D1 分别写入为 20299=79 256 + 75 和 10281=40 256 + 41,其中 79,75,40,41 分别是"O","K","(",")"的 ASCII 码。
●DSTR0:返回的是"K"(说明只需要读前 8 个 bit)。
●DSTR1:返回的是")"(说明读的是 D1 的前 8 个 bit)。
参考
《MELSEC 通信协议参考手册》
《FX3U -ENET-ADP 用户手册》
《FX 3S ·FX 3G ·FX 3GC ·FX 3U ·FX 3UC 系列微型可编程控制器编程手册》
试用产品:申请试用|AIRIOT 让物联网项目更简单
评论