分享

1200 modbuss RTU通信控制V20变频器

 反恐精英秃鹫 2021-08-30
1200系列PLC虽然没有标配RS485接口,但是可以通过CM1241通信模块或CB1241通信信号板扩展一个RS485接口,与V20进行Modbus RTU通信。一起来学习一下程序的编写吧。
本例中采用的硬件设备:
西门子1215C DC/DC/DC型CPU
扩展CB1241通信信号板
西门子V20变频器
硬件连接:

Image


变频器参数设置:

参数

功能

设置

P0010

调试参数

= 30: 恢复出厂设置

P0970

工厂复位

= 1: 所有参数复位至默认值= 21: 所有参数包括用户默认设置复位至工厂复位状态

P0003

用户访问级别

= 3 专家级

P0700

选择命令源

= 5: RS485 上的USS /MODBUS

P1000

选择频率源

= 5:RS485上的USS/MODBUS

P2010[0]

USS / MODBUS 波特率

= 6: 9600 bps  = 7: 19200 bps = 8: 38400 bps= 12: 115200 bps

P2014[0]

报文间断时间[ms]

时间设为 0 时不发生故障(即看门狗被禁止)。

P2021

Modbus 地址

1 至 247(工厂缺省值:1)

P2022

Modbus 应答超时[ms]

0 至 10000(工厂缺省值:1000)

P2023

RS485 协议选择

= 2: Modbus  =1 USS

P2034

奇偶校验

= 0: 无奇偶校验,= 1: 奇校验,= 2: 偶校验

P2035

停止位

= 1: 1 个停止位,= 2: 2 个停止位

CPU硬件组态设置:

Image


双击CB1241打开属性设置:

Image


如何查看CB1241的RS485接口的硬件标识符:

Image


编写程序:
1.Modbus_Comm_Load指令,组态通信端口。 

Image


参数和类型

数据类型

说明

EN

IN

Bool

一直接通

REQ

IN

Bool

上升沿使能(常用M1.0'FirstScan')

PORT

IN

Port

“硬件标识符”

BAUD

IN

UDInt

波特率(与从站设备一致)

PARITY

IN

UInt

奇偶校验:0 – 无,1 – 奇校验,2 – 偶校验

RESP_TO 1

IN

UInt

响应超时单位ms

MB_DB

IN

Variant

对 Modbus_Master 或 Modbus_Slave 指令所使用的背景数据块的引用。

DONE

OUT

Bool

完成标志

ERROR

OUT

Bool

错误标志

STATUS

OUT

Word

错误代码

Modbus_Comm_Load 背景数据块静态变量

变量

数据类型

默认值

说明

ICHAR_GAP

Word

0

字符间最大字符延迟时间。该参数以毫秒为单位指定,用于增加接收字符间的预期时间。与此参数对应的位时间个数加到Modbus 默认值的 35 个位时间( 3.5 个字符时间)。设置4ms

RETRIES

Word

2

在返回错误代码 0x80C8“无响应”之前主站进行的重复尝试次数。

MODE

USInt

0

工作模式● 0 = 全双工 (RS232)● 1 = 全双工 (RS422) 四线制模式(点对点)● 2 = 全双工 (RS422) 四线制模式(多主站, CM PtP(ET200SP))● 3 = 全双工 (RS422) 四线制模式(多从站, CM PtP (ET200SP))● 4 = 半双工 (RS485) 双线模式

STOP_BITS

USInt

1

停止位的数目:● 1 = 1 个停止位● 2 = 2 个停止位● 0, 3 到 255 = 保留

Modbus_Master 主站读写指令 

Image


参数和类型

数据类型

说明

REQ

IN

Bool

0 = 无请求,1 = 请求将数据传送到 Modbus 从站

MB_ADDR

IN

UInt

Modbus RTU从站地址:标准寻址范围(1 到 247)

MODE

IN

USInt

读写模式:0读,1写

DATA_ADDR

IN

UDInt

从站中的起始地址如40100

DATA_LEN

IN

UInt

数据长度:指定此请求中要访问的位数或字数

DATA_PTR

IN_OUT

Variant

数据指针:如P#DB1.DBX0.0 WORD 2

DONE

OUT

Bool

上一请求已完成且没有出错后, DONE 位将保持为 TRUE 一个扫描周期时间。

BUSY

OUT

Bool

● 0 - 无 Modbus_Master 操作正在进行● 1 - Modbus_Master 操作正在进行

完整程序如下:

Image

Image

Image

Image

Image

注意:RS485接口工作于半双工模式,不能同时收发数据,更不能同时触发两条读或写指令,所以要编写轮循程序,将多条读写操作错开逐条触发。
V20变频器的控制字40100意义:

信号名称

1 信号

00

ON / OFF1

01

OFF2:电气停车

02

OFF3:快速停车

03

Enable Pulses

04

RFG(斜坡函数发生器)使能

05

RFG(斜坡函数发生器)启动

06

设定值使能

07

故障确认

08

正向点动

09

反向点动

10

由 PLC 控制

11

反向(设定值反相)

12

保留


13

电动电位计 MOP 升速

14

电动电位计 MOP 降速

15

CDS 位 0(手动/自动)

通过上述表格得出:
正转:应先写16#47E,再写16#47F。
反转:应先写16#C7E,再写16#C7F。
频率设定地址40101意义是16#4000(16384)代表P2000 基准频率的100%。
反馈运行频率40111的意义也是和40101一样,要得到实际的频率,应进行换算。
实际频率=40111/16384*P2000 
读取的状态字40110意义: 

信号名称

1 信号

00

变频器就绪

01

变频器准备就绪

02

变频器正在运行

03

变频器故障激活

04

OFF2 激活

05

OFF3 激活

06

ON 禁止激活

07

变频器报警激活

08

设定值/实际值偏差

09

PZD 控制

10

|f_act| >= P1082(f_max)

11

报警:电机电流/转矩极限值

12

抱闸打开

13

电机过载

14

电机正转

15

变频器过载

根据状态字就能知道当前变频器的状态,如第2位为TRUE表示正转运行,第3位为TRUE表示变频器故障,第14位为TRUE表示正转,为FALSE表示反转等。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多