前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 RS232/422/485 总线 DVFRAME 和 MODBUS 通讯

基于 RS232/422/485 总线 DVFRAME 和 MODBUS 通讯

作者头像
剑指工控
发布2021-11-09 15:13:09
1.3K0
发布2021-11-09 15:13:09
举报
文章被收录于专栏:剑指工控

JZGKCHINA

工控技术分享平台

通讯篇

1.1 基础知识

1、个人经验,基于以太网的通讯协议,通讯速率由快到慢,依次顺序 TCP/IP, Pvi, ModbusTCP, OPC…

1.2 DEVICE接口描述

格式:[SL<x>].[SS<x>].[IF<x>]

SL ... 槽号

SS ... 扩展槽号

IF ... 通讯接口 IF 号<x>

例如:

IF2: CPU 自带的第 2 个通讯口

SS1.IF1: CPU 第 1 个扩展槽模块的第 1 个通讯口

1.2.1.1 pMODE

1、SG3 CPU 的格式:

[<Type>],[<Baud rate>],[<Parity>],[<Data bits>],[<Stop bits>],[<Options>],[<Idle>]

Type: 接口类型,分为 RS232, RS422, RS485, TTY, RS485TxE ("RS485" Tx echo) or 或 RS422BUS 等。默认值 RS232

baud rate: 波特率,分为 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 or 115200。默认值 57600

Parity: 奇偶校验方式,分为

↘ N ... 无校验

↘ O ... 奇校验

↘ E ... 偶校验

↘ H ... High forced parity

↘ L ... Low forced parity

Data bits: 数据位,分为 (默认值 8)

↘ 7 ... 7 数据位

↘ 8 ... 8 数据位

Stop bits: 停止位,分为 (默认值 1)

↘ 1 ... 1 位停止位

↘ 2 ... 2 位停止位

Options: 如果是 RS232 接口,还可以设置以下参数

↘ HW ... 硬件握手协议(请求发送/清除发送)

↘ RT ... 外部控制的耦合器(INT1)RTS 电缆

Idle: 字符之间允许最大空闲时间

收到两个连续字符之间的时间间隔称为“空闲时间”。如果这段时间超过设定的最大值(最大空闲时间之间的字符),控制器认为帧数据传输完成。一个字符的长度作为单位的空闲时间。

例如:

"19200,7,E,1"

"RS485,N,8,1,9600"

2、SG4 CPU 的格式

例如:

"/PHY=RS485 /PA=N /DB=8 /SB=1 /BD=9600"

1.3 MOBUS通讯

1.3.1 AS 帮助

Programming –> Libraries -> Communication -> DRV_mbus

1.3.2 基本资料

Modbus 功能码一览(常用)

功能码

名称

作用

01

读取线圈状态

取得一组逻辑线圈的当前状态(ON/OFF)

02

读取输入状态

取得一组开关输入的当前状态(ON/OFF)

03

读取保持寄存器

在一个或多个保持寄存器中取得当前的二进制值

04

读取输入寄存器

在一个或多个输入寄存器中取得当前的二进制值

05

强置单线圈

强置一个逻辑线圈的通断状态

06

预置单寄存器

把具体二进值装入一个保持寄存器

15

强置多线圈

强置一串连续逻辑线圈的通断

16

预置多寄存器

把具体的二进制值装入一串连续的保持寄存器

1.3.3 硬件平台

硬件平台:RS232、RS422、RS485。

1.3.4 参数

1.3.4.1 PDEVICE

device 接口参数,用于指定系统哪个接口。

1.3.5 MOBUS 通讯 – 主站

1.3.5.1 主站函数

MBMOpen 函数

MBMaster 函数

正常通讯时:

Status 返回值为 0

1.3.5.2 贝加莱例程 -MBUS_MAST 任务

mbus_mast 任务说明

第 1 步,用 MBMOpen 函数打开端口,得到端口的 ident。

第 2 步,打开端口后,MBMaster 函数不断地执行进行主站数据收发。

其他,如有需要,用 MBMClose 函数关闭端口通讯。

1.3.5.2.1 数据模块

主要定义通讯变量内容:

从站:站号、功能码、寄存器起始地址、寄存器长度

主站:相对应的变量名

1.3.6 MOBUS 通讯 – 从站

1.3.6.1 从站函数

MBSOpen 函数

关于 pCoilStat, pInputStat, pInputReg, pHoldingReg , 如果 pCoilStat, pInputStat, pInputReg, pHoldingReg 为 0 时,采用默认的 MB0、MB1、MB3、MB4。

或者

可以自定义成其他变量名。例如,定义 CoilStat 为 BOOL[0..99]、InputStart 为 BOOL [0..99]、InputReg 为 UINT[0..99]、HoldingReg 为 UINT [0..99]分别替换 MB0、MB1、MB4、MB3。

MBSlave 函数

I/O

参数

数据类型

描述

IN

enable

BOOL

使能

IN

ident

UDINT

MBSOpen 功能块得到的 ID

OUT

status

UINT

错误号(0=无错误)

OUT

exec

UINT

Modbus 执行次数

正常通讯时:

Status 返回值为 0

Exec 返回值不断加 1。每收到主站数据命令,Exec 加 1。

1.4 补充说明

说明 1:贝加莱 Modbus 从站只支持 RTU 模式,主站 RTU 和 ASCII 模式都支持。

1.4.1.1 贝加莱例程 -MBUS_SLAV 任务

mbus_slav 任务说明

第 1 步,用 MBSOpen 函数打开端口,得到端口的 ident。

第 2 步,打开端口后,MBSlave 函数不断地执行进行从站数据收发。

其他,如有需要,可以用 MBSClose 函数关闭端口通讯。

1.4.1.2 地址对应

备注:

Y=X+1。例如,Modbus 的 400002 对应贝加莱从站 MB4[1]。

如需在 B&R 系统中仿真,必须采用 MBx。

1.4.2 MOBUS 通讯常见错误号

20220:

MBSOpen() 或 MBMOpen() 功能块 timeout 参数错误(不能 < 250 ms)MBMCmd(), MBMaster() 或 MBSlave() 功能块通讯检测超时(通常是在没通讯上时,会报此错误)

1.4.3 案例 – 贝加莱 CPU 跟西门子 S7-200 MODBUS 通讯

见文档“贝加莱 PCC 和西门子 200modbus 通信.pdf”

1.4.4 案例 – 贝加莱 CPU 跟 PRO-FACE MODBUS 通讯

实际测试结果:

C4.05 操作系统,X20CP1583 做从站,Pro-face 屏做主站,RS232 交叉连接,偶校验,8 位数据位,1 位停止位。

波特率为 19200 时,Exce 数据不断加 1,但是 MB4 数据收不到。

波特率为 9600 时,能够正常收发数据。

1.5 DVFRAME帧通讯

1.5.1 AS 帮助

Programming –> Libraries -> Communication -> DVFrame

1.5.1.1 相关函数

1、 FRM_xopen 函数

打开通讯端口。

Config 配置参数

关于 delimc 和 delim

delimc = 0: delim 的参数无效

delimc 不等于 0: delim 的参数有效

↘ delimc = 1: delim[0]参数有效

↘ delimc = 2: delim[0]和 delim[1]参数有效

2、 FRM_read 函数

接收数据。

3、 FRM_write 函数

发送数据。

4、 FRM_close 函数

关闭端口通讯。

5、 FRM_ rbuf 函数

接收缓存区数据释放。

当接收缓存区接收到数据后,需要通过此函数将缓存区数据清空。如果有多个缓存区,可能要等到数据都接收完才清空。

6、 FRM_gbuf 函数

此函数可以得到发送缓存区。缓存区地址和长度可以通过此函数得到。

1.5.1.2 贝加莱例程 - LIBDVFRAME1_ST 和LIBDVFRAME2_ST

LibDVFrame1_ST 例程

发送和接收分成两个任务。

任务基本框架:打开端口 -> 发送/接收数据 -> 关闭端口(可选项)

LibDVFrame2_ST 例程

发送和接收合在一个任务里。

备注:通常 FRM_read 函数不断执行(即不断接收数据),FRM_write 函数只在有需要发送数据时,执行。

作者简介

陈斌斌

深圳信通环球科技有限公司创始人

2008年毕业于山东大学 电力电子与电力传动专业 硕士

先后就职于贝加莱工业自动化(中国)有限公司、奥海自动化系统(深圳)有限公司,于2015年创立深圳信通环球科技有限公司,为自动化行业客户提供“运动控制+视觉+工控机”系统集成,主要完成的系统有吹瓶机电控系统、称重失重控制系统、瓦楞纸整线电气控制系统、三次元机械手系统、磁悬浮搬运机械手系统、印刷机电气控制系统、视觉轮廓检测、3C电子组装贴合视觉定位等;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 基础知识
    • 1、SG3 CPU 的格式:
      • Parity: 奇偶校验方式,分为
        • Stop bits: 停止位,分为 (默认值 1)
          • 2、SG4 CPU 的格式
            • 1.3.1 AS 帮助
              • 1.3.2 基本资料
                • 1.3.3 硬件平台
                  • 1.3.4 参数
                  • 1.4 补充说明
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档