龙空技术网

欧姆龙SCU042通信模块使用modbus rtu/串口网关/无协议/协议宏

工控筆記树先生 593

前言:

现在看官们对“c语言中072等于多少”大致比较注意,兄弟们都需要知道一些“c语言中072等于多少”的相关内容。那么小编同时在网摘上汇集了一些对于“c语言中072等于多少””的相关内容,希望咱们能喜欢,看官们快快来了解一下吧!

Modbus RTU 从站

用户设置并烧入

用户设置并烧入

serial gateway串口网关

用户设置并烧入

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

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

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

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

无协议

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

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

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

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

2、 操作步骤

(1) 硬件设置:

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

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

2) 软件操作

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

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

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

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

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

程序段相关变量表:

编写 ST 语言:

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

编写串口接收指令:

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

功能块说明:

编写串口发送指令:

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

功能块说明:

3、现象和结论

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

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

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

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

4、注意事项

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

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

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

协议宏(无协议)

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

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

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

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

2、 操作步骤

(1) 硬件设置:

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

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

(2) 软件操作

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

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

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

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

程序段相关变量表:

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

编写 ST 语言:

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

编写协议宏通讯指令:

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

ExecPMCR功能块说明:

d. 协议宏工程说明

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

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

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

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

3、现象和结论

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

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

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

4、注意事项

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

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

(3)协议宏相关标志位

协议宏(MODBUS RTU主站)

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

控制变频器启动

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

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

2. 操作步骤

(1) 硬件设置:

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

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

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

(2) 软件操作:

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

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

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

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

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

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

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

发送报文 1 编写:

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

+校验。

校验详细设置如下:

发送报文 2 编写:

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

+校验

接收报文 1 编写:

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

PLC 的 D0 开始地址) +校验

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

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

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

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

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

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

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

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 指令具体含义如下:

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

即设置:

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,表示通讯成功。

4. 注意事项

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

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

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

标签: #c语言中072等于多少