flymcu无法打开串口_欧姆龙SCU042通信模块使用modbus rtu/串口网关/无协议/协议宏...

Modbus RTU 从站

209ab13de294547fd5122b30d32958df.png

用户设置并烧入

5bfef9cb38cedc56ab36655129b92d15.png

用户设置并烧入

d121a55052e2ff29b13b94b0a1706845.png
c8a84a2ac733518d9e1702ea611f0ecc.png
cb74e5d8f3d547a4a2f089cb05a26974.png
be62e5c75c623827a4501f5f8a8b71b4.png
ad6825897c0e2445070f810392707d9b.png

serial gateway串口网关

4b9ac6455230c477fa0ef4932fd4fc8d.png

用户设置并烧入

e0427810fbe3c173a1968824e7b9b8b3.png

1. 编写程序,Commport端子输入默认_NONE,CmdDate[0-1]是选择要发出的协议。后面跟对应协议的格式,sendcmd指令的好处就是不需要自己编写校验码的程序,将自动生成校验码发出去。

2. 案例为选择发送MODBUS RTU指令,向1号站的温控器读取温度,我们用串口监视PLC发出的数据。

0102f41c30ac7736b473e0b9ed2f14f1.png

可以看到串口监视的PLC发出的数据自动把校验码加上了,说明正确。

当选择网关串口时,端口可发送compway/F,MODBUS RTU,MODBUS ASICC指令做主站。

无协议

掌握 NJ301 通过 CJ1W-SCU42 模块, 使用 SerialSend、 SerialReV 功能块实现无协议的接收和发送。

1、 系统概述,硬件搭建和接线

将 CJ1W-SCU42 按照下面的安装顺序插在 NJ 的 CPU 后面,如下图所示:

351a57061fc1d3327d97d08e6685a71e.png

用XW2Z-200S-V将SCU的串口2和电脑的串口连接, XW2Z-200S-V电缆制作方法:

31166741a04d239ecc192aa9ba47432b.png

2、 操作步骤

(1) 硬件设置:

a. CJ1W-SCU42 模块拨码含义与设置如下:

b82487983efabfad72292e07caceed61.png

本案例仅使用 232 口,因此终端电阻拨码与 2 线/4 线切换拨码均无效,可以任意设置,模块单元号设置 3。

2) 软件操作

a. 新建 NJ301 的工程, 在 CPU 扩展机架的选项中,读取硬件设备并合并,读取模块的单元号是 3,如下图所示:

23be46fc410f4a9d30e4833e414be205.png

b. 点击“编辑特殊单元设置” ,对模块的串口 2 进行下列的配置:

选择用户设置,No-protocol 协议,数据格式 7、 2、 E,波特率: 19200;

8b3fa3637ea173e4c9be62c02de4abba.png

设置好后,选择传送到控制器。

c. 插入程序-段, 在编辑窗口中进行主程序的编写,内容如下所示:

程序段相关变量表:

cb6923ab7a450e286568551f5b5439fd.png

编写 ST 语言:

97c4d06881f33d7ee8b230dc512143bd.png

设置使用单元号为 3 的 SCU 模块的端口 2 进行通讯。

431baf64428623d529e2fb5b765284bf.png

编写串口接收指令:

e2587b0eee3ee07b129c06d8f3c3f1be.png

即设置接收 4 个字节数据,数据保存在 Rcv_date[0]开始的变量中。

功能块说明:

e4a1b03b8824f7003ff95992880d9629.png
424f1a1ae81928082e44a54d511c427a.png

编写串口发送指令:

647f8463df60eed4f727dec945e5bfeb.png

即发送 sen_date[0]开始的 4 个字节数据。

功能块说明:

88cb1e1e67248e670a50c8419cc868ec.png
da53d5feb7439f401b0e7ab338b28bfa.png

3、现象和结论

a. 配置串口调试助手,发送数据“11 22 33 44” 4 个字节

8afa3778b08a1b006d60fc3e91dc08cf.png

点击发送后,查看到 J01_P2_NopRcvCompleteSta 置 ON,接收完成标志位导通, 串口缓存收到数据, 如下图所示:

527cb8fcbd5259e7c3038500afaac35f.png

触发 S1,接收数据到数组变量 Rcv_data[0]-[3]中,监视变量如下所示

76ba3fb4e0e8c38283ade2d3515248a6.png

b. 预先在变量 Sen_date 中写入数据 11 22 00 00,触发 S3,发送数值到串口调试助手,会收到数据 11 22 00 00,如下图所示:

0b9b9f9155ba9cf9d847c4ab4f88abb6.png
6ef1d7b17025937f011569e6b6d78560.png

4、注意事项

(1) 在SerialSend指令中,被发送数据的数组变量一定要大于SerialSend中指定的字节数,不然无法发送数据出去。

(2) 本实验的程序为了方便理解,逻辑上较为简单,详细内容可以参考NJ指令手册基本篇功能举例。

(3)无协议通讯相关系统变量,请参考SCU模块操作手册(W494-E1-04), 以下为常用变量列表:

df4e81ae7cc6374cd0a38e2142e12575.png

协议宏(无协议)

通过 NJ301 带 CJ1W-SCU42 模块, 掌握使用 ExecPMCR 功能块实现协议宏的接收和发送。

1、 系统概述,硬件搭建和接线

将 CJ1W-SCU42 按照下面的安装顺序插在 NJ 的 CPU 后面,如下图所示:

2a0733d3cec8450408ec4d6144d79d85.png

用XW2Z-200S-V将SCU的串口2和电脑的串口连接, XW2Z-200S-V电缆制作方法:

56c39a837af4d14fd3931459de14c5b5.png

2、 操作步骤

(1) 硬件设置:

a. CJ1W-SCU42 模块拨码含义与设置如下:

eb3974f4a50b9c7b248a94fc1bf0ca09.png

本案例仅使用 232 口,因此终端电阻拨码与 2 线/4 线切换拨码均无效,可以任意设置,模块单元号设置 0。

(2) 软件操作

a. 新建 NJ301 的工程, 在 CPU 扩展机架的选项中,读取硬件设备并合并,读取SCU 模块的单元号是 0,点击“编辑特殊单元设置” ,对模块的串口 2 进行下列的配置:

73e031a987ef071a6b57656ca0e2d094.png

选择用户设置,Protocol Macro 协议,数据格式 7、 2、 E,波特率: 9600

23a6f0416f2713daa407118fafe04aa6.png

设置好后,选择传送到控制器。

c. 插入程序-段, 在编辑窗口中进行主程序的编写,内容如下:

程序段相关变量表:

4cf3f26fea55f24d85f02752da6bbd23.png

SendData 数组对应 D10 开始地址, RecvData 数组对应 D0 开始地址。

编写 ST 语言:

2018014ace1fe465e45d7dcd5e16f866.png

即设置使用单元号 0,端口 2 进行协议宏通讯,并给 SendData 数组赋值。

94453127ef4907b922d1de539c031ff2.png

编写协议宏通讯指令:

5866b106493e176e84ec6ca917aaeaa9.png

即使用 SendData 数组作为发送地址, RecvData 数组作为接收地址。

ExecPMCR功能块说明:

b614de65becf13c0758306da66ba7553.png

d. 协议宏工程说明

1) 在序列里建立一个Send&Recive的Step, 发送的内容在梯形图里由指令的发送数组SendDate指定,报文设置为Operand,发送报文如下所示。

8c975351a2e8439cb88bafb914e2cdbd.png

2) 接收字节长度为 4 个字节,接收地址通过接收数组 RecvDate 里 AT 指定到D0,接收报文如下所示:

7ef28de81091b197684c6fe0e602923f.png

即设置从 D0(RecvDate[0])开始,写入连续 4 个字节数据。

设置完成后,把工程下载进 SCU 模块中。

3、现象和结论

a. 配置串口调试助手, 执行 PMCR 指令,发送数值到串口调试助手,会收到数据11 22 00 00,如下图所示:

d12774ecea2838a58f4507bb8de6a5b2.png

b. 发送数据“11 22 33 44” 4 个字节

0d04d75eda873f9943b263ecf82d60f8.png

监视 RecvData,可以看到现象如下:

eb7129e539c1f3bfe2e7aa44e1da9253.png

4、注意事项

(1) DstDat[ ]必须在 CJ 单元存储器的地址中指定 AT;

(2) 直接指定、链接通道指定时, SrcDat[0]及 DstDat[0]的值请设为 0。设定为其它常数和变量时会发生异常,不执行本指令。

(3)协议宏相关标志位

d22eb8ddfcaa255506442b10bab4c616.png

协议宏(MODBUS RTU主站)

CJ1W-SCU 模块通过协议宏功能,做 modbus-RTU 主站与变频器通讯,

控制变频器启动

1. 系统概述,硬件搭建和接线

434348bf41139d3185743d09224152fa.png

本案例使用 CJ1W-SCU41-V1 的 485 口,连接至 3G3MX2 的485 口。

2. 操作步骤

(1) 硬件设置:

a. CJ1W-SCU41-V1 模块拨码含义与设置如下

8f7d4c92eac0641b438fb65591a7e131.png

本案例中,终端电阻拨码设置 OFF, 2 线/4 线切换拨码设置 2 侧,单元号设置 0。

b. 3G3MX2 侧也有终端电阻拨码, 位置请参考图 1-1, 本次设置 OFF。

(2) 软件操作:

a. CX-Programmer 中新建 CP1H-XA 工程,切换到编程模式, 双击打开 IO 表, 点击选项-创建, 创建成功后, 配置 SCU 模块串口 1,如下图所示:

将配置传送到 PLC,重启模块:

63bad05ad02c77cf4eb84e92734d4a5b.png

即设置用户设置,协议宏模式, 8 位数据位, 2 位停止位,偶校验, 9600 波特率

b. 打开 CX-protocol 软件, 新建工程:

f90cca5d73e0f352e61cf7faa298be2a.png

c. 鼠标右键创建协议宏工程, 选择 CJCS 系列, 如下图所示:

9809e1a2236cde6453d6c09c0ae4256d.png

d. 创建序列-步,新建-发送和接收报文:

2cf05b7ce2acf97fa9081fb7c8b31915.png
c5673e995679e6f77939c39f1357ad71.png

e. 编辑写入频率命令和运行命令的报文, 如下图所示:

发送报文 1 编写:

154a0e3ffa91a22e46bb32e52e79686f.png

代码含义: 01(站点号) 06(写数据) 0001(变频器频率地址) 1388(=5000=50HZ)

+校验。

校验详细设置如下:

0aa3d75d89f4d419b786785b6a7bca75.png

发送报文 2 编写:

888720dc1b7f8ad4ccd7d20f80336898.png

代码含义: 01(站点号) 05(写位状态) 0000(变频器启停位地址) FF00(ON)

+校验

接收报文 1 编写:

c09bb37dc452d964f590606638e359f1.png

代码含义: 01(站点号) 06(写数据)(W(DM00000),4)(反馈的 4 字节数据写入

PLC 的 D0 开始地址) +校验

W(DM00000),4) 具体写入设置:

c94df6ca57fba9cb8b76430a7034bbe2.png
219e64b7734392fd12528055cd79cfd8.png

f. 编辑写入频率命令和运行命令的报文,第一条命令结束后执行 NEXT 下一条运行的命令, 如下图所示:

a9667b87966bbeb45f8ca17f0d5b5aaa.png

第一步 00 添加发送报文 1 与接收报文 1, Next 选项设置 Next,第二步 01 添加发送报文 2。

g. 选中 New Protocol,设置相关监视时间:

163d27828fe290d1e0c3c25168d5a4b0.png

选中 New Protocol List,目标选择对应的 SCU 模块:

3e15b91ba1cd9d92af2fce15645a9fee.png

h. 连接 PLC, 点击下载协议宏, 先编译,再下载,如下图所示:

8b68bd23421be0035a6e033eadced9d7.png
9fa898cd0fa98ad2438b7edc8925aa85.png

i. 在编辑窗口中进行主程序的编写,内容如下所示

3dad88627c3d1937d3035dfccef64f63.png

1509.15 是协议宏执行标志位。

A202.00 是内部逻辑端口 0 的网络通信命令可执行标志位,逻辑端口 0~7 可以任意指定。

PMCR 的第一个控制字的 12-15 位的 0 内部逻辑端口 0, 8-11 位的 1 是串口1,0-7 位的 10 是 10+单元号(这里的单元号是 0)

第二个控制字 0 代表序列 0 即 POTOCOL 中的 Sequence0

第三个控制字和第四个控制字分别是发送和接收的数据通道,仅当 POTOCOL 中的 Data Address 是 Operand 时有效,所以这里都设为 0。

PMCR 指令具体含义如下:

88a6fff0e251afdf5675959fc6183434.png
256d8861c2d52808ea08ec370291a12e.png

j. 设置变频器的运行指令和频率指定为 Modbus 通讯, 数据为 8 位,波特率为9600 和串口参数一致:

d382ae28e615d2d1593f5c4af407f910.png

即设置:

A001=03,A002=03,C071=05,C072=1,C074=01,C075=2,C076=02,C077=0.00,C078=0。

注: C071、 C074、 C075 的数据只有在断电重启或复位后,才能完成更改。

3. 现象和结论

(1) 执行 PMCR 指令, 观察到变频器 RUN 灯亮并以 50HZ 运行,监视 D001 频率当前值为 50Hz。

(2) 在 CX-protocol 里,读取 TRACE 显示如下数据,收到反馈的数据是 01 06 0001 1388 D5 5C 01 05 00 00FF 00 8C 3A,表示通讯成功。

4d974941c05268dd202a137b58ca3b95.png
bad0ef1c7c76b0186d7b2734bb0ccbd3.png

4. 注意事项

(1) CJ 系列协议宏通讯设置方法一样, 如使用 CJ2M 的 CPU, 需要使用CX-Protocol 1.92 及以上版本才支持。

(2) 协议宏相关标志位计算方法:

59c0b85bc35c35d42f055b496fe3a46d.png

(3) 终端电阻在现场使用时建议开启,如连接多台设备,只需要首位两台设备启用终端电阻即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值