FB2和FB3的功能docx.docx

上传人:b****8 文档编号:9447517 上传时间:2023-05-19 格式:DOCX 页数:17 大小:132.25KB
下载 相关 举报
FB2和FB3的功能docx.docx_第1页
第1页 / 共17页
FB2和FB3的功能docx.docx_第2页
第2页 / 共17页
FB2和FB3的功能docx.docx_第3页
第3页 / 共17页
FB2和FB3的功能docx.docx_第4页
第4页 / 共17页
FB2和FB3的功能docx.docx_第5页
第5页 / 共17页
FB2和FB3的功能docx.docx_第6页
第6页 / 共17页
FB2和FB3的功能docx.docx_第7页
第7页 / 共17页
FB2和FB3的功能docx.docx_第8页
第8页 / 共17页
FB2和FB3的功能docx.docx_第9页
第9页 / 共17页
FB2和FB3的功能docx.docx_第10页
第10页 / 共17页
FB2和FB3的功能docx.docx_第11页
第11页 / 共17页
FB2和FB3的功能docx.docx_第12页
第12页 / 共17页
FB2和FB3的功能docx.docx_第13页
第13页 / 共17页
FB2和FB3的功能docx.docx_第14页
第14页 / 共17页
FB2和FB3的功能docx.docx_第15页
第15页 / 共17页
FB2和FB3的功能docx.docx_第16页
第16页 / 共17页
FB2和FB3的功能docx.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FB2和FB3的功能docx.docx

《FB2和FB3的功能docx.docx》由会员分享,可在线阅读,更多相关《FB2和FB3的功能docx.docx(17页珍藏版)》请在冰点文库上搜索。

FB2和FB3的功能docx.docx

FB2和FB3的功能docx

你这里的FB2/FB3是用于串行通讯模块CP340通讯编程的,FB2

P_RCV功能块

允许接收来自一个通信伙伴的数据并将其存储在一个数据块中。

FB参数:

名称

类型

数据类型

注释

有效设置

备注

EN_R

INPUT

BOOL

数据的读取发布。

静态"1"

R

INPUT

BOOL

作业中断

当前作业被中断

禁止接收

LADDR

INPUT

INT

CP340的基础地址

从STEP7获得基础

地址

DB_NO

INPUT

INT

数据块编号,接收DB号

随不同的CPU而定,不允许为零

DBB_NO

INPUT

INT

数据子节编号

0<=DBB_NO<=8190

自该数据字节起接收数据

NDR

OUTPUT

BOOL

作业完成,没有出错,数据被传送。

参数STATUS==16#00;

ERROR

OUTPUT

BOOL

作业完成,出现错误。

参数STATUS包含错

误信息

LEN

OUTPUT

INT

接收到的消息长度

1<=LEN<=1024用字

节数目定义

STATUS

OUTPUT

WORD

错误的定义

ERROR==1时,错误信息在STATUS参数中

P_RCV无参数检查,如出现无效参数,CPU

 

P_SEND功能块

允许将一个数据块的全部或部分区域发送到一个通信伙伴。

FB参数:

名称

类型

数据类型

注释

有效设置

备注

REQ

INPUT

BOOL

作业由正沿触发

沿触发

R

INPUT

BOOL

作业中断

当前作业被中断

禁止发送

LADDR

INPUT

INT

CP340的基础地址

从STEP7获得基础地址

DB_NO

INPUT

INT

数据块编号

发送DB号

随不同的CPU而定,不允许为零。

DBB_NO

INPUT

INT

数据字节编号

0<=DBB_NO<=8190

自该数据字节起发送数据。

LEN

INPUT

INT

数据长度

1<=LEN<=1024

用字节数目定义。

DONE

OUTPUT

BOOL

作业完成,没有出错

参数STATUS==16#00;

ERROR

OUTPUT

BOOL

作业完成,出现错误。

参数STATUS包含错

误信息

STATUS

OUTPUT

WORD

错误的定义

ERROR==1时,错误信息在STATUS参

数中

没有必要了解FB2/FB3内部是怎么实现的,太复杂,精力应该放在学会如何使用FB2/FB3完成USS通讯。

点对点通讯功能块FB2FB3是CPU模块与点对点通讯处理器CP340的软件接口,用于建立两者间的数据交

换。

完成一次发送需要多个循环周期,因此在用户程序中它们必须被无条件的连续调用,用于周期性或定时程序控制的数据传输。

主站与从站的通讯协议类型、从站地址、数据位长度、停止位、奇偶校验、传输超时等必须一致,否则通讯难以成功。

MODBUSRTU功能03请求帧的DB块结构

地址

名称

数据类型

初始值

说明

0.0

a[1]

字节—

B#16#01

从站地址

1.0

a[2]

字节

B#16#03

读取保存寄存器功能

2.0

a[3]

字节

B#16#17

寄存器起始地址咼位

3.0

a[4]

字节

B#16#89

寄存器起始地址低位

4.0

a[5]

字节

B#16#00

读取数据个数高位

5.0

a[6]

字节「

B#16#01

读取数据个数低位

6.0

a[7]

字节

B#16#00

 

MODBUSRTU功能03响应的DB块结构

地址

名称

数据类型

初始值

说明

0.0

a[1]

字节—

B#16#02

返回字节数

1.0

a[2]

字节

B#16#00

返回数据咼位

2.0

a[3]

字节

B#16#64

返回数据低位

3.0

a[4]

字节

B#16#00

4.0

a[5]

字节

B#16#00

5.0

a[6]

字节:

B#16#00

6.0

a[7]

字节

B#16#00

FB3

容。

程序不能根据从站地址、功能码来判定响应数据的种类,但CP340却规定了给定时间内仅允许一个发送

模块(FB2)和一个接受模块(FB3)工作。

这就意味着它们在程序中已形成一一对应关系。

在设计程序时,可根据MODBUS的格式约定从返回的DB块中自行读取所需的数据,如返回的数据为0064,

格式为16位整数,其读取地址为DB5.DBW01。

要读取从站(地址为01)从1789(十六进制,分高低位存储)开始的一个寄存器(十六进制,分高低位存

储,占2个字节)的内容,其请求帧数据见表5。

CRC校验数据自行设定。

返回数据为0064(数据分高位和

低位存放,占2个字节,转换为十进制是100,即6X16+4),返回帧见表6。

表5请求帧

从站地址号

功能号

起始奇存器号(X)

寄存器数(N)

CRC校验

01

03

17

89

00

01

12

34

a[1]

a[2]

a[3]

a[4]

a[5]

a[6]

a[7]

a[1]

表6响应帧

 

从站地址号

功能号

字节数

数据咼位

数据低位

CRC校验

01

03

02

00

64

12

34

a[1]

a[2]

a[3]

a[4]

a[5]

从站地址范围1-24表中每格中的数据单位为字节,

实例

FC60-----接收/发送子程序(CP340)

程序段1

 

程序段2调用FB3“P-SEND”

肯景數据块

DB9

*DB_P_SHDd*

FB?

亿SENTE))o

I

EN

1

H22O.O

M220»L

"Scrnd.FinisF

K£Q

DOME

中止当幫请求一

R

ERJ

M220.2

^SMB.Error*

CP340®件抱址512

LKDDR

STATUS

LWO

错谏代两

農示发送奴it块地址対切弘阂1不能烦右—

DB_HO

叢示开始宇节号为D

gflDBBO.皆入范围WEi恥□——

DBB_W0

数据七度t范031~M2G皿

此虚为8个宇节DBS*DBDZO0—

LEH

 

程序段4

 

CKP>=1

MOVE

DBS.rm—

IJV1

1一

III

14——

IU2

程序段5

i

程序运行

II

程序段6调用FB2“P-RCV

EM

FB2

ENO

woon4

EN_R

NPR

"RC¥_Fin^hw

E

ERROR

iioon叫

"RCV.Error"

-to5心白IN

LADDR

LEN

孩咬旳Ts■■且长厦

DB_N0

STATUS

T

DEB_NO

LiIT丄

梢误代码

背景数据块

DE7

"切_亡強_1/

M220.3

Kead_Enable

中止接收故据——

CP34D硬件地址512——

表示接收数据块地址为D时8—

赛示开始宇节号为0

IpDBEO,输入范阖0〜£1如0——

P_RCV无参数检查,如出现无效参数,CPU将切换到STOP模式,必须先完成P_RCV功能块的CP_CPU启动机制,则CPU从STOP切换到RUN模式后,CP340才能接收到请求。

FC61协议处理子程序程序段1〜12

当DB5.DBW4

读对应仪表

仪表地址

DB5.DBB0

DB5.DBB1

DB5.DBB2

=1

1#进线

1

B#16#B6(182)

B#16#E8(232)

=2

2#进线

2

B#16#B6(182)

B#16#DB(219)

=3

2#机

3

B#16#B7(183)

B#16#A(10)

=4

5#机

4

B#16#B6(182)

B#16#BD(189)

=5

3#机

5

B#16#B7(183)

B#16#6C(108)

=6

4#机

6

B#16#B7(183)

B#16#5F(95)

=7

变频器

7

B#16#B6(182)

B#16#DB(142)

=8

?

8

B#16#85(133)

B#16#4B(75)

=9

6#机三相电压

15

B#16#85(133)

B#16#39(57)

=10

6#机三相电流

15

B#16#4(4)

B#16#FB(251)

=11

6#机有功/无功功率

15

B#16#84(132)

B#16#FC(252)

=12

6#机有功/无功电度

15

B#16#45(69)

B#16#18(24)

程序段13

若DB5.DBW4<8

MOVE

DB5.DBB0

B#16#3

B#16#F

B#16#9F

B#16#0

B#16#21

DB5.DBB1

DB5.DBB2

DB6.DBB0从站地址)

DB6.DBB1读寄存器指令03)

DB6.DBB2寄存器起始地址高位)

DB6.DBB3寄存器起始地址低位)

DB6.DBB4读取数据个数高位)

DB6.DBB5读取数据个数低位)

tDB6.DBB6(CRC!

环校验码高位)tDB6.DBB7CRCf环校验码低高位)

程序段14

若DB5.DBW4=8

MOVE

DB5.DBB0tDB6.DBB0从站地址)

B#16#3tDB6.DBB1读寄存器指令03)

B#16#0tDB6.DBB2寄存器起始地址高位)

B#16#0tDB6.DBB3寄存器起始地址低位)

B#16#0tDB6.DBB4读取数据个数高位)

B#16#21tDB6.DBB5读取数据个数低位)

DB5.DBB1tDB6.DBB6(CRC!

环校验码高位)

DB5.DBB2tDB6.DBB7CRCf环校验码低高位)

程序段15读6#机三相电流,寄存器地址40100〜40102

若DB5.DBW4=9

MOVE

DB5.DBB0tDB6.DBB0从站地址15)

B#16#3tDB6.DBB1读寄存器指令03)

B#16#0tDB6.DBB2寄存器起始地址高位)

B#16#64tDB6.DBB3寄存器起始地址低位,以十进制表示为100)

程序段16读6#机三相电压,寄存器地址40108〜40110

若DB5.DBW4=10

MOVE

DB5.DBB0tDB6.DBB0从站地址15)

B#16#3tDB6.DBB1读寄存器指令03)

B#16#0tDB6.DBB2寄存器起始地址高位)

B#16#6CtDB6.DBB3(寄存器起始地址低位,以十进制表示为108)

程序段17读6#机有功/无功功率,寄存器地址40116〜40117

若DB5.DBW4=11

MOVE

DB5.DBB0tDB6.DBB0从站地址15)

B#16#3tDB6.DBB1读寄存器指令03)

B#16#0tDB6.DBB2寄存器起始地址高位)

B#16#74tDB6.DBB3寄存器起始地址低位,以十进制表示为116)

程序段18读6#机有功/无功电度,寄存器地址40200〜40201

若DB5.DBW4=12

MOVE

DB5.DBB0tDB6.DBB0从站地址15)

B#16#3tDB6.DBB1读寄存器指令03)

B#16#0tDB6.DBB2寄存器起始地址高位)

B#16#C8tDB6.DBB3寄存器起始地址低位,以十进制表示为200)

程序段20(10〜12次数据读取共用)

若DB5.DBW4>=9

MOVE

B#16#0tDB6.DBB4读取数据个数高位)

B#16#6tDB6.DBB5读取数据个数低位)

DB5.DBB1tDB6.DBB6(CRC循环校验码高位)

DB5.DBB2tDB6.DBB7CRCf环校验码低高位)

程序段211#低压进线柜(地址1)

若DB8.DBW0=259(地址号1+功能号03=0000000100000011=28+3=256+3=259)

DB8.DBW21tDB5.DBW56(2#进线柜功率因数)

DB8.DBW29tDB5.DBW58(2#进线柜频率)

DB8.DBD3tDB5.DBD60(2#进线柜有功电度)

程序段232#机组(地址3)

若DB8.DBW0=771(地址号3+功能号03=0000001100000011=29+28+3=256*3+3=771)

MOVE

DB8.DBW63

TDB5.DBW64

(2#机组A相电压)

DB8.DBW65

T

DB5.DBW66

(2#机组B相电压)

DB8.DBW67

T

DB5.DBW68

(2#机组C相电压)

DB8.DBW43

T

DB5.DBW70

(2#机组A相电流)

DB8.DBW45

T

DB5.DBW72

(2#机组B相电流)

DB8.DBW47

T

DB5.DBW74

(2#机组C相电流)

DB8.DBW15

T

DB5.DBW76

(2#机组总有功功率)

DB8.DBW19

T

DB5.DBW78

(2#机组总无功功率)

DB8.DBW21

T

DB5.DBW80

(2#机组功率因数)

DB8.DBW29

T

DB5.DBW82

(2#机组频率)

DB8.DBD3

T

DB5.DBD84

(2#机组有功电度)

程序段24

3#机组

(地址5)

若DB8.DBW0=1027(以此类推)

 

MOVE

DB8.DBW63

T

DB5.DBW88

(3#机组A相电压)

DB8.DBW65

T

DB5.DBW90

(3#机组B相电压)

DB8.DBW67

T

DB5.DBW92

(3#机组C相电压)

DB8.DBW43

T

DB5.DBW94

(3#机组A相电流)

DB8.DBW45

T

DB5.DBW96

(3#机组B相电流)

DB8.DBW47

T

DB5.DBW98

(3#机组C相电流)

DB8.DBW15

T

DB5.DBW100

(3#机组总有功功率

DB8.DBW19

T

DB5.DBW102

(3#机组总无功功率)

DB8.DBW21

T

DB5.DBW104

(3#机组功率因数

DB8.DBW29

T

DB5.DBW106

(3#机组频率)

DB8.DBD3

T

DB5.DBD108

(3#机组有功电度)

程序段254#机组(地址6)

若DB8.DBW0=1283(以此类推)

MOVE

左地址同tDB5.DBW(112〜132)

程序段265#机组(地址4)

若DB8.DBW0=1539(以此类推)

MOVE

左地址同tDB5.DBW(136〜156)

程序段27变频器柜(地址7)

若DB8.DBW0=1795(以此类推)

MOVE

左地址同tDB5.DBW(160〜180)

程序段28电容器柜(地址8)

若DB8.DBW0=2051(以此类推)

MOVE

左地址同tDB5.DBW(184〜204)

程序段296#机组三相电压(地址15单位A,+100)

若DB4.DBW4=10且DB8.DBW0=384(地址号3+功能号03=0000111100000011=211+210+29+28+3=256*15+3=3843)

DB8.DBW3tI-DIt#UabtDI-Rt#Uab_1tDIV100tDB501.DBD62(”#机组数据块”.Uab)

DB8.DBW5tI-DIt#UbctDI-Rt#Ubc_1tDIV100tDB501.DBD66(”#机组数据块”.Ubc)

DB8.DBW7tI-DIt#UcatDI-Rt#Uca_1tDIV100tDB501.DBD70(”#机组数据块”.Uca)

程序段306#机组三相电流(地址15单位V,X80-1000)CT变比400/5

若DB4.DBW4=11且DB8.DBW0=3843(以此类推)

DB8.DBW3tI-DIt#IatDI-Rt#Ia_1tDIV1000t#Ia_2tMUL80tDB501.DBD74(”6#机组数据块”.Ia)DB8.DBW5tI-DIt#IbtDI-Rt#Ib_1tDIV1000t#Ib_2tMUL80tDB501.DBD78(”6#机组数据块”.Ib)

DB8.DBW7tI-DIt#ictDI-Rt#lc_1tDIV1000t#|c_2tMUL80tDB501.DBD82(”6#机组数据块”lc)

程序段316#机组有功/无功功率(地址15,整型数,单位KW和KVARX8-1000)

若DB4.DBW4=12且DB8.DBW0=3843(以此类推)

DB8.DBW3tI-DIt#WtDI-Rt#W_1tMUL0.08tDB501.DBD86(”6#机组数据块”.W)

DB8.DBW5tI-DIt#QtDI-Rt#Q_1tMUL0.08tDB501.DBD90(”#机组数据块”.Q)

程序段326#机组有功/无功电度(地址15,长整型数,单位KWH和KVARH十10)

若DB4.DBW4=13且DB8.DBW0=3843(以此类推)

DB8.DBW3tDI-Rt#WWtDIV10tDB501.DBD94(”6#机组数据块”.WW)

DB8.DBW7tDI-Rt#QQtDlV10tDB501.DBD96(”6#机组数据块”.QQ)

程序段332#进线有功电度(长整型数,单位KWH,+10000)

DB8.DBD60tDI-RtDB8.DBD212tDIV10000tDB5.DBD212

程序段342#机组有功电度(长整型数,单位KWH,+10000)

DB8.DBD84tDI-RtDB8.DBD220tDIV10000tDB5.DBD220

程序段355#机组有功电度(长整型数,单位KWH,-10000)

DB8.DBD132tDI-RtDB8.DBD224tDIV10000tDB5.DBD224

程序段363#机组有功电度(长整型数,单位KWH,+10000)

DB8.DBD108tDI-RtDB8.DBD?

tDIV10000tDB5.DBD?

程序段374#机组有功电度(长整型数,单位KWH,+10000)

DB8.DBD156tDI-RtDB8.DBD228tDIV10000tDB5.DBD228

程序段38变频器有功电度(长整型数,单位KWH,+10000)

DB8.DBD180tDI-RtDB8.DBD232tDIV10000tDB5.DBD232

程序段39电容柜有功电度(长整型数,单位KWH,+10000)

DB8.DBD204tDI-RtDB8.DBD236tDIV10000tDB5.DBD236

程序段40?

(长整型数,单位KWH)

DB10.DBD180tDI-RtDB5.DBD240

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2