M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx

上传人:b****7 文档编号:24962765 上传时间:2023-06-03 格式:DOCX 页数:37 大小:1.30MB
下载 相关 举报
M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx_第1页
第1页 / 共37页
M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx_第2页
第2页 / 共37页
M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx_第3页
第3页 / 共37页
M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx_第4页
第4页 / 共37页
M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx

《M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx》由会员分享,可在线阅读,更多相关《M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx(37页珍藏版)》请在冰豆网上搜索。

M218与ATV312的Modbus串行通讯Modbus控制命令给定速度.docx

M218与ATV312的Modbus串行通讯Modbus控制命令给定速度

M218与ATV312的Modbus串行通讯(Modbus控制命令给定速度)

 

M218与ATV312

Modbus串行通讯控制

<一>

——Modbus通讯控制命令、给定速度

 

M218ModbusSerialCommunicationwithATV312Edition:

2012-6

1.实验简介

PLC通过modbus监控变频器的运行是工业中较常见的应用,本文以施耐德M218PLC与ATV312变频器为例,简要介绍PLC与变频器之间modbus串行通讯的过程,包括硬件接线、变频器参数设置、硬软件组态、上电调试等,实现在PLC上远程控制ATV312变频器的故障初始化,启动/停止,正转/反转,频率给定等。

本文只介绍了PLC通过modbus通讯远程控制变频器,关于modbus通讯控制和端子控制混合使用的情况,以及其他施耐德PLC,如Premium,Quantum与ATV312的modbus串行通讯,将在本书的其他文章中介绍。

2.实验环境

2.1硬件环境

主要硬件如下:

类型

型号

数量

参考图片

电源

24V开关电源

1

PLC

M218

TM218LDA40DRPHN

1

变频器

ATV312

1

M218编程电缆

TCSXCNAMUM3P

1

Modbus通讯电缆

RJ45接头屏蔽双绞线

1

2.2软件环境

M218Soft3.5是施耐德电器支持M218PLC的编程,调试和运行的工具软件。

3.硬件连接

 

 

1

2

3

4

5

6

7

8

CAN_H

CAN_L

CAN_GND

D1

D0

不连

10V

公共

 

 

TCSXCNAMUM3PM218编程电缆

M218自带串口,COM2口

通信电缆,M218的COM2口连接到变频器的RJ45口

RJ45接头

 

4.ATV312变频器设置

4.1操作说明

ATV312的前面板说明如下:

ATV312操作面板

主要操作规则:

旋转导航键

对菜单进行浏览,不会对选定项进行存储;

存储选定项,按导航(ENT)键

,当存储数值时,显示器会闪烁。

正常显示状态:

无故障出现和无起动时,正常显示有如下几种:

-频率:

SUP-菜单中所选的参数的显示(缺省选项:

加到电机上的输出频率)。

在电流限制模式下,显示器会闪烁。

-init:

初始化顺序

-rdY:

变频器就绪

-dcb:

直流注入制动正在进行

-nSt:

自由停车

-FSt:

快速停车

-tUn:

正在进行自动整定

故障显示状态:

显示器闪烁指示出现的故障,如果接中文面板,请参阅ATV312编程手册中故障处理一节。

任何初始显示状态下,均可以先按Mode键进入rEF菜单,然后旋转导航键找到需要设置菜单。

4.2主要参数设置

ATV312的主菜单如下,所有的参数均在主菜单的子目录里面进行设置。

 

 

4.2.1恢复出厂设置

ATV312上电后,如果用户对液晶显示未知,或者变频器设置未知,可以先恢复出厂设置。

如果变频器已经设置过,且不需要恢复出厂设置,请跳过本小节,从4.2.2电机参数开始进行参数的设置和检查。

参数路径

参数说明

功能描述

drC-Fcs

返回工厂设置

InI

No:

功能未被激活;InI:

恢复工厂设置,此功能被执行后,Fcs又自动回复到nO状态。

恢复出厂设置操作如下:

 

恢复出厂设置的电机,上电后显示

ready,按照先后顺序,分别做如下设置。

4.2.2电机参数

电机参数设定步骤如下:

参数路径

参数说明

功能描述

drC-Frs

电机额定频率

50

根据电机的铭牌设置,范围10-500HZ

drC-nCr

电机额定电流

1.2

根据电机的铭牌设置,范围0.25-1.5倍变频器额定电流

drC-nSP

电机额定速度

1400

根据电机的铭牌设置,范围0-32760RPM

电机额定频率设定如下;本例中电机的额定频率为50,与出厂设置相同,所以采用出厂设置即可;读者根据实际情况按照电机铭牌上的额定频率进行设定。

 

电机额定电流设置

电机额定转速设置

 

4.2.3控制方式

如果采用Modbus通讯控制启停及速度给定,步骤如下:

参数路径

参数说明

功能描述

CTL-LAC*

功能访问等级

L3

访问高级功能与混合控制模式的管理

CTL-FR1*

配置给定1

ndb

通过modbus总线给定

CTL-CHCF*

控制模式设置

SIN

如果LAC=L3可访问此参数:

SIN-组合,控制和频率给定由同一种方式设定;SEP-分离,控制和频率给定由不同的方式设定

Flt-OPL

电机缺相故障

No

带小电机试验时,禁止因为输出电流过小出现的电机缺相故障;一般在变频器最小输出电流大于电机额定电流时需要禁止电机缺相故障。

在任何应用状态下*为必设项。

 

功能访问等级设置

配置给定1

控制模式设置:

本例中控制和频率给定全部由通讯给定,将控制模式设置为SIN组合模式,与出厂设置相同;用户需根据实际情况进行模式选择。

禁止电机缺相故障设置如下;当变频器最小输出电流大于电机额定电流时需要禁止电机缺相故障。

4.2.4通讯参数

此设置和PLC中的Modbus参数设置保持一致,步骤如下:

参数路径

参数说明

功能描述

CON-ADD

从站地址

2.

范围1-247

CON-tbr

通讯速率

19200

4.8-4800bps;9.6-9600bps;19.2-19200

CON-tfo

通讯格式

8n1

8O1:

8个数据位,奇校验,1个停止位

8E1:

8个数据位,偶校验,1个停止位

8n1:

8个数据位,无校验,1个停止位

8n2:

8个数据位,无校验,2个停止位

 

从站地址设置

 

通讯速率设置

通讯格式设置

注意

设置完毕后,关闭ATV312电源再重新上电,参数才生效!

5.PLC编程

5.1Modbus协议简介

Modbus协议是Modicon公司于1978年开发的一个用于PLC和编程器之间通讯的协议,1980年起,为众多制造商所采用而完全开放,成为“事实上的工业标准”。

它实现控制器相互之间、控制器经由网络和其它设备之间的通信,支持传统的RS一232/422/485设备和最新发展出来的以太网设备。

该协议定义了一个控制器能识别的消息结构,描述了控制器如何请求访问其它设备,如何回应来自其它设备的请求,以及怎样侦测错误并记录。

它是一种应用层报文传输协议,与底层的物理接口及电气规范无关,这是其目前生命力仍很强的原因。

Modbus协议是一个分级结构(主从式)异步串行通讯协议,为客户机/服务器方式,可使主站对一个或多个从站进行访问,主站和从站之间允许多点连接。

⏹主站和从站可以有两种对话方式:

•查询方式:

主站对一个从站进行对话并等待其回应

•广播方式:

主站对所有从站进行对话(不等待回应)

⏹Modbus的协议中有两种传输方式:

•RTU方式格式:

地址命令数据CRC校检

•ASCII方式格式:

头码地址命令数据LRC校检尾码

说明:

•RTU(RemoteTerminalUnit,远程终端单元)

•CRC(CyclicalRedundancyCheck,循环冗余校验)

•LRC(LongitudinalRedundancyCheck,纵向冗余校验)

5.2交换数据表

M218作为主站进行Modbus通信时,必须编程通信程序,而程序的编写是通过填写字表的方式进行的,以下就Modbus字表进行详细阐述。

另外,M218作为Modbus从站时,是不需要编程的,只需要配置通信参数即可。

读N个字-%MW(功能码03)

索引

高字节

低字节

控制表

0

01(发送/接收)

06(发送长度)*

1

03(接收偏移)

00(发送偏移)

发送表

2

从站地址(1…247)

03(请求码)

3

读取的第一个字的地址

4

读取的字数N

接收表

5

从站地址(1…247)

03(请求码)

6

00(接收偏移值)

2×N所读的值占用的字节数

7

读取的第一个字

8

读取的第二个字

N+6

读取的第N个字

*在应答后,长度会变为接收到的字节长度

写N个字-%MW(功能码16)

索引

高字节

低字节

控制表

0

01(发送/接收)

8+(2×N)发送长度

1

00(接收偏移)

07(发送偏移)

发送表

2

从站地址(1…247)

16(请求码16进制10)

3

所写第一个字地址

4

所写字的个数N

5

00(发送偏移值)

2×N所写字节数

6

所写的第一个字

7

所写的第二个字

N+5

所写第N个字

接收表

N+6

从站地址(1…247)

16(请求码)

N+7

所写第一个字地址

N+8

所写的字数

有多条EXCH指令时,要使用分时控制

 

5.3ATV312参数说明

5.3.1读写变量

读出变量

地址

代码

说明

3203

FRH

给定频率

3202

RFR

电机输出频率

3207

ULN

线电压

7121

LFT

上一次故障

3201

ETA

DRIVECOM状态字

写入变量

地址

代码

说明

8501

CMD

DRIVECOM命令字

8502

LFR

在线给定频率

8504

CMI

内部控制寄存器

11920

RPI

PI调节器内部设定点

9623

UFR

IR补偿

 

5.3.2状态字

状态字ETAD(W8603)或CMD(W3201)

Bit0

准备接通

Bit1

接通

Bit2

操作被允许

Bit3

故障

Bit4

电压无效

Bit5

快速制动

Bit6

接通被禁止

Bit7

报警

Bit8

0

Bit9

线性控制

Bit10

达到给定值

Bit11

超过给定值

Bit12

0

Bit13

0

Bit14

按STOP键停止

Bit15

旋转方向

5.3.3控制字

控制字ETAD(W8603)或CMD(W3201)

Bit0

接通

Bit1

电压无效

Bit2

快速制动

Bit3

允许操作

Bit4

0

Bit5

0

Bit6

0

Bit7

故障复位

Bit8

0

Bit9

0

Bit10

0

Bit11

正传/反转

Bit12

斜坡制动

Bit13

注入制动

Bit14

快速制动

Bit15

0

5.3.4特殊DRIVECOM参数

特殊”DRIVECOM”参数

地址

代码

说明

8606

ERRD

故障代码(写保护)

8601

CMDD

命令字

8603

ETAD

状态字(写保护)

8602

LFRD

给定转速

8605

FRHD

带符号输出转速(写保护)

8604

RFRD

无符号输出转速(写保护)

 

5.4DRIVECOM流程

 

 

 

ATV312的DRIVERCOM流程

 

5.5M218SoMachineV3.0软件的配置

步骤

动作&示例

1

新建一个工程

2

写入项目名称

3

先点击程序,然后在项目名M218+ATV312Modbus点击右键,在弹出的快捷菜单中选择添加设备。

 

4

选择CPU型号要和工程使用的一致,否则不能下载!

5

双击串行链路口2设置串口通信数据,配置如下要和变频器一致

6

配置串口2为主站

5.6M218软件编程语句介绍

一个M218控制器配置后可与Modbus从设备通信,或以字符模式(ASCII)发送和/或接收消息。

Somachine为这些通信提供了下列功能:

●ADDM用于串口的地址转换

●Read_VAR读取从站数据

●Write_VAR写入从站数据。

5.6.1ADDM指令

说明:

将字符串地址转换为ADDRESS类型的目标地址

操作符

ADDM

功能描述

将字符串地址转换为ADDRESS类型的目标地址

图形表示形式

管脚定义:

ASCII码串行通讯

输入/输出

类型

注释

AddrTable

ADDRESS

这是由功能块填充的ADDRESS结构。

输入

类型

注释

Execute

BOOL

在上升沿执行功能

Addr

STRING

要转换为ADDRESS类型的STRING类地址(参见下面的详细信息)

输出

类型

注释

Done

BOOL

功能成功完成后,Done设置为TRUE。

注意:

当使用Abort输入中止操作后,Done不设置为1(仅限Aborted)。

Error

BOOL

当功能由于检测到错误而停止时,Error设置为TRUE。

当检测到错误时,CommError和OperError包含有关检测到的错误的信息。

CommError

BYTE

CommError包含通讯错误代码。

注意:

Execute输入上的上升沿执行转换,并返回AddrTable的立即更新。

但是,当检测到错误时(即当Addr字符串不正确时),AddrTable保持为上一个值。

功能块需要上升沿才能进行初始化。

功能块需要首先将Execute输入视为False,才能检测后续的上升沿。

警告

意外的设备操作

请务必首先通过将功能块的Execute输入设为FALSE来调用功能块,这样它便可以检测后续的上升沿。

如果不遵守这些说明,将会导致死亡、严重伤害或设备损坏。

Modbus串行地址格式的AddrSTRING

对于Modbus串行寻址,请使用通讯端口和目标从站地址(0到 247),之间用句点分隔:

.

例如,使用以下语法通过串行线路2上向从站 8发送消息:

’2.8’

ADDM功能使用以下这些值填充AddrTable输入/输出:

字段

类型

示例

_Type

BYTE

保留

未使用

_CliID

BYTE

保留

未使用

Rack

BYTE

机架编号(始终为0)

0

Module

BYTE

模块编号(始终为0)

0

Link

LinkNumber

2

_ProtId

BYTE

0(对于Modbus)

0

AddrLen

BYTE

1

1

UnitId

BYTE

8

AddrExt

ADDR_EXT

未使用

5.6.2READ_VAR:

从Modbus设备读取数据

功能描述

READ_VAR功能块从采用Modbus协议的外部设备中读取数据。

图形表示形式

特定于READ_VAR的参数介绍

输入

类型

注释

ObjType

ObjectType

ObjType是要读取的对象的类型(MW、I、IW和Q)。

FirstObj

DINT

FirstObj为要读取的第一个对象的索引。

Quantity

UINT

Quantity为要读取的对象的数量:

∙1-125:

寄存器(MW和IW类型)

∙1-2000:

位(I和Q类型)

Buffer

POINTERTOBYTE

Buffer为将在其中存储对象值的缓冲器的地址。

ADR标准功能是定义关联指针的必用功能。

(请参见下面的示例。

)缓冲器是一个表,用于接收在设备中读取的值。

例如,4个寄存器的读取存储在包含4 个字的表中,而32 位的读取则需要包含2 个字或4 个字节的表,其中每个位都设置为远程设备的对应值。

5.6.3WRITE_VAR:

向Modbus设备写入数据

功能描述

WRITE_VAR功能块将对象写入采用Modbus协议的外部设备中。

图形表示形式

特定于WRITE_VAR的参数介绍

输入

类型

注释

ObjType

ObjectType

ObjType介绍要写入的对象的类型(MW、Q)。

FirstObj

DINT

FirstObj为要写入的第一个对象的索引。

Quantity

UINT

Quantity为要读取的对象数:

∙1-123:

寄存器(MW类型)

∙1-1968:

位(Q类型)

Buffer

POINTERTOBYTE

Buffer为将在其中存储对象值的缓冲器的地址。

ADR标准功能是定义关联指针的必用功能。

缓冲器是一个表,用于接收必须在设备中写入的值。

例如,4个寄存器的写入值存储在包含4 个字的表中,而32 位的写入值则需要包含2 个字或4 个字节的表,其中每个位都设置为对应值。

5.7程序的分步讲解

5.7.1一台PLC与一台变频器通讯

程序首先使用Blink模块建立一个100ms为周期的方波,然后使用ADDM功能块实现Somachine串口的设置,ATV312的Modbus从站地址为2。

然后使用Read_Var和Write_Var实现对ATV312的读和写,需要注意的是Write_Var和Read_Var功能块不能同时调用,必须分时调用,在程序中在Read_Var完成后再调用Write_Var功能块,在程序的最后,编写了ATV312、12通用的Drive_com流程功能块,此功能块包含了急停和故障复位的功能。

 

 

5.7.2Schneider_Drivecom功能块的编写

功能块输入输出变量说明。

VAR_IN_OUT

ControlWord:

UINT;

END_VAR

VAR_OUTPUT

Done:

BOOL;

fault:

BOOL;

END_VAR

VAR

uiStep:

UINT:

=10;

status:

UINT;

estop:

BOOL;

END_VAR

//快停信号为常闭信号,正常为1

//onlyforATV312/12

//访问等级为L3级,LAC=L3,给定通道为ModbusFr1=ndb,Modbus通讯地址add=2,

//Modbus通讯波特率bdr=19200,数据格式8E1,输出缺相不检查OPL=no

程序体编写说明:

(*取状态字的低字节做流程判断*)

status:

=StatuswordAND16#6F;

//根据状态字的状态写控制字

(*使能*)

IF(status=16#40)THEN

ControlWord:

=6;

END_IF

(*切换到准备好*)

IFstatus=16#21THEN

ControlWord:

=7;

END_IF

(*切换到Opetationenabled-运行*)

//正转

IF(status=16#23ORstatus=16#27)ANDRun_forwardANDNOTRun_reverseANDQiuckStopANDNOTfaultTHEN

ControlWord:

=16#000F;//runforword

ELSEIF(status=16#23ORstatus=16#27)ANDNOTRun_forwardANDNOTRun_reverseANDQiuckStopANDNOTfault

THENControlWord:

=16#100F;//stop

END_IF

END_IF

//反转

IF(status=16#23ORstatus=16#27)ANDRun_reverseANDNOTRun_forwardANDQiuckStopANDNOTfaultTHEN

ControlWord:

=16#080F;//runreverse

ELSEIF(status=16#23ORstatus=16#27)ANDNOTRun_forwardANDNOTRun_reverseANDQiuckStopANDNOTfault

THENControlWord:

=16#100F;//stop

END_IF

END_IF

//done的处理

IFstatus=16#27THEN

done:

=TRUE;

ELSE

done:

=FALSE;

END_IF

(*急停*)

IFNOTQiuckStopTHEN

ControlWord:

=16#2;

END_IF

//快停后对控制字的处理

IFstatus=16#7ANDQiuckStopTHEN

ControlWord:

=0;//quickstop

estop:

=1;

ELSE

estop:

=0;

END_IF

//故障状态判断

IF(StatuswordAND16#F)=16#8THEN

fault:

=1;

ELSEfault:

=0;

END_IF

(*故障复位*)

//复位时将控制字第七位置1,上升沿有效

IFResetTHEN

ControlWord.7:

=1;

ELSE

ControlWord.7:

=0;

END_IF

 

6.实验调试

注意

本实验中变频器带小电机驱动风扇进行测试,因此负载使用安全。

 

6.1ATV312常见通讯故障

出现通讯故障或者变频器故障时,变频器会自动停止输出。

在此例中,常见故障是SLF(seriallinkfault)通讯故障,通讯故障之后10秒

变频器会自动停止输出,并在液晶显示器上显示SLF。

几种常见的故障-原因-解决方案如下:

故障起因

故障现象

解决方案

恢复运行

变频器显示

变频

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1