8 userdefined comm通信功能.docx

上传人:b****3 文档编号:4901840 上传时间:2023-05-07 格式:DOCX 页数:27 大小:652.96KB
下载 相关 举报
8 userdefined comm通信功能.docx_第1页
第1页 / 共27页
8 userdefined comm通信功能.docx_第2页
第2页 / 共27页
8 userdefined comm通信功能.docx_第3页
第3页 / 共27页
8 userdefined comm通信功能.docx_第4页
第4页 / 共27页
8 userdefined comm通信功能.docx_第5页
第5页 / 共27页
8 userdefined comm通信功能.docx_第6页
第6页 / 共27页
8 userdefined comm通信功能.docx_第7页
第7页 / 共27页
8 userdefined comm通信功能.docx_第8页
第8页 / 共27页
8 userdefined comm通信功能.docx_第9页
第9页 / 共27页
8 userdefined comm通信功能.docx_第10页
第10页 / 共27页
8 userdefined comm通信功能.docx_第11页
第11页 / 共27页
8 userdefined comm通信功能.docx_第12页
第12页 / 共27页
8 userdefined comm通信功能.docx_第13页
第13页 / 共27页
8 userdefined comm通信功能.docx_第14页
第14页 / 共27页
8 userdefined comm通信功能.docx_第15页
第15页 / 共27页
8 userdefined comm通信功能.docx_第16页
第16页 / 共27页
8 userdefined comm通信功能.docx_第17页
第17页 / 共27页
8 userdefined comm通信功能.docx_第18页
第18页 / 共27页
8 userdefined comm通信功能.docx_第19页
第19页 / 共27页
8 userdefined comm通信功能.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

8 userdefined comm通信功能.docx

《8 userdefined comm通信功能.docx》由会员分享,可在线阅读,更多相关《8 userdefined comm通信功能.docx(27页珍藏版)》请在冰点文库上搜索。

8 userdefined comm通信功能.docx

8userdefinedcomm通信功能

8.2用户自定义协议通讯

8.2.1概要

用户自定义协议通讯允许用户把MK80S基本单元和其它公司的设备进行通讯,同时在MASTER-KPLC中定义其它公司的通讯协议。

因为每个公司都为自己的产品定义了许多通讯协议。

我们不可能包含所有的协议。

因此当用户根据自身的目的定义了自己的协议,MK80S基本单元可以通过自定义的协议与其他设备进行通讯。

基于这样的原因,用户必须在KGLWIN(2.0或更高的版本)中定义协议帧。

同时关于用户自定义协议的内容对于完成通讯是至关重要的。

所以应该确切的知道内容的每一点。

KGLWIN(2.0或更高的版本)可以下载和保存用户自定义的协议帧在MK80S基本单元中(在电源断开的时候,也不会被擦除)。

但是当遇到如下的情况时,协议帧会损坏:

1)下载的参数改变时,2)没有备份数据时,3)备份电池电压低于标准时。

对于用户自定义模式,用户需要根据指令进行编程控制PLC的发送,同时编辑帧。

这一节解释了UDPC的设定和用途。

 

8.2.2参数设定

1)设定通讯参数

(1)KGLWIN中打开一个新的工程文件

选择MK80S作为PLC类型

(2)在KGLWIN中设定通讯参数后。

双击它然后将激活下面的窗体。

(3)根据下表进行设定

项目

设定范围

站号

从0到31

波特率

1200,2400,4800,9600,19200,38400,57600bps

数据位

7或8位

奇偶位

0,偶或者奇

停止位

1或2位

通讯通道

●RS232C空调制解调器或RS422/485:

它是一个使用MK80S基本单元内置通讯和CnetI/F模块(G7L-CUEC)之间通讯的通讯通道。

●RS232C调制解调器(专用线):

使用带有CnetI/F模块(G7L-CUEB)的专用调制解调器进行通讯的通道。

●RS232C拨号调制解调器:

通过电话线把拨号调制解调器和CnetI/F模块(G7L-CUEB)相连的通讯。

注脚)使用CnetI/F模块(G7L-CUEB)支持RS232C,完成RS232C专用或者拨号调制解调器通讯。

但是不能通过CnetI/F模块(G7L-CUEC)支持RS422/485。

主模式下的暂停

●当主MK80S基本单元发送一个请求帧开始,等待响应帧的时间。

●默认值是500ms。

●必须考虑主PLC的最大发送/接收的周期时间。

●如果设定的值小于最大发送/接收周期时间,导致通讯错误。

用户定义的主站

如果设定为主,它在通讯系统中是主要部件,如果被设定成从站,它仅能接收从主站来的请求帧。

 

2)

设定帧

(1)在通讯参数中选择协议和模式中的用户自定义术语的一个,‘清单’按钮将被激活。

(2)点击‘清单’按钮激活下面的窗体。

(3)在帧清单中选择1到15,打开下面的窗体。

1帧规范

●头

在[头]类型中使用

可能的字符,可以是一个阿拉伯字母,一个数字或者是控制字符。

控制字符

控制代码

NUL(h00)

STX(h02)

ETX(h03)

EOT(h04)

ACK(h06)

NAK(h15)

SOH(h01)

ENQ(h05)

BEL(h07)

BS(h08)

HT(h09)

LF(h0A)

VT(h0B)

FF(h0C)

CR(h0D)

SO(h0E)

S1(h0F)

DLE(h10)

DC1(h18)

DC2(h12)

DC3(h13)

DC4(h14)

SYN(h16)

ETB(h17)

CAN(h18)

EM(h19)

SUB(h1A)

ESC(h1B)

FS(h1C)

GS(h1D)

RS(h1E)

US(h1F)

Del(H7F)

 

例1)[NUL],[ENQ],[1],[A]:

可以

例2)NUL,ENQ,[12],[ABC]:

不可以

-仅允许3个连续的字符

例1)[ENQ][STX][NUL]:

可以

例2)[A][NUL][ENQ][STX]:

不可以

 

●发送/接收

没有定义:

是一个没有说明帧格式的初始值。

发送:

说明一个发送帧。

接收:

说明一个接收帧。

当帧0窗体被激活时,术语Tx/Rx被设置为“没有定义”,所有的段没有处于

激活状态。

 

段(1-8):

一个一个的键入段以分开固定的发送数据区域(CONSTANT)和设备区域(Array)。

项目

内容

设定段的类型,它们是NONE(没有定义),CONST(固定数据区域),ARRAY(设备区域)。

CONST说明了通信帧使用了命令和固定数据,ARRAY被中间通讯过程用来输入和保存数据。

ARRAY类型必须总是字节。

这是一个被通信帧使用,说明命令和固定数据的区域和说明输入的区域。

ASCII输入必须在10字符之内,十六进制必须在20个字符之内。

如果数目超过了极限,应该将下一个段设定成相同的类型,然后继续输入。

作一个专用协议通讯,10RSB06%MW10006是一个执行从16号从站的M1000读取6个字的帧。

例1)10RSB06%MW10006

 

如果段被表示成ARRAY类型,表示传送设备(P,M,L,K,F,T,C,D)和传送字节的数目。

例2)如果用户想要传送D000~D003,应该象如下的方法设定

(传送设备:

D000,传送数目:

6字节)

这是选择命令输入类型的单选按钮。

有十六进制和ASCII值2种。

例1)ASCII:

10RSB06%MW100

例2)十六进制:

31305253423036255744313030

如果设定了ARRAY,它将询问用户是把数据转换成ASCII发送,(在发送帧的情况),还是转换成十六进制接收(在接收帧的情况)。

如果设定了ARRAY,区域的尺寸可以设定为字节。

单位必须是字节。

在[尾]类型中使用

可能的字符,可以是一个阿拉伯字母,一个数字或者是控制字符。

控制字符

控制代码

NUL(h00)

STX(h02)

ETX(h03)

EOT(h04)

ACK(h06)

NAK(h15)

SOH(h01)

ENQ(h05)

BEL(h07)

BS(h08)

HT(h09)

LF(h0A)

VT(h0B)

FF(h0C)

CR(h0D)

SO(h0E)

S1(h0F)

DLE(h10)

DC1(h18)

DC2(h12)

DC3(h13)

DC4(h14)

SYN(h16)

ETB(h17)

CAN(h18)

EM(h19)

SUB(h1A)

ESC(h1B)

FS(h1C)

GS(h1D)

RS(h1E)

US(h1F)

Del(H7F)

例1)[NUL],[ENQ],[1],[A]:

可以

例2)NUL,ENQ,[12],[ABC]:

不可以

-仅允许3个连续的字符

例1)[ENQ][STX][NUL]:

可以

例2)[A][NUL][ENQ][STX]:

不可以

-可以使用检查错误的BCC。

BCC必须在设定成[BCC]时使用。

为了设定BCC内容,点击在右侧的“BCC设定”按钮。

例5)

BCC设定:

当需要时设定BCC。

项目

内容

数据类型

ASCII增加2个ASCII类型的字节BCC值到帧。

十六进制增加1个十六进制类型的字节BCC值到帧。

设定BCC的具体细节,请参阅8.1.6“命令的执行”

检查规则

默认值

这是标记为[BCC]的数据之前的从第2个数据开始的所有数据的和。

输入结果到[BCC]区域

和(

SUM)1

BCC方式使用类似默认值的和。

但是用户可以定义BCC区域。

和(

SUM)2

BCC方式与SUM1相同,但是当屏蔽最后的BCC值时使用。

异或(

XOR)1

BCC方式是OR(异或).

异或(

XOR)2

BCC方式与XOR1相同,但是当屏蔽最后的BCC值时使用。

乘积(MUL)1

BCC方式为乘法。

乘积(MUL)2

BCC方式与MUL1相同,但是当屏蔽最后的BCC值时使用。

范围

H表示头,S表示段,T表示尾。

例1)当头设定为[ENQ][STX],尾为[EOT][ETX],设定BCC的范围从[STX]到

[ETX],然后设定H[1]~T[1].

补码

设定是否取补码或者在[BCC]的1或者2的补码。

如果在取补码之后,进行屏蔽设定,用户可以设定任何值取做屏蔽。

屏蔽的方法和设定值

例1)XOR方法屏蔽时,使用值HFF:

^FF

例2)OR方法屏蔽时,使用值HFF:

|FF

使用AND方法屏蔽时,使用值HFF:

&FF

&

7

^

6

※设定屏蔽方法的键盘上的键→

●帧尺寸

-ASCII通讯:

最大128字节

-Hex通讯:

最大256字节

●连接继电器(L)

-它是一个表示是否按用户的顺序接收到定义的帧的标志。

-如果接收到的帧与在帧3号清单中定义的帧相匹配,L003开始闪烁。

(0→1→0)

●当接收了帧后,MK80S基本单元检查接收到的帧与在帧清单中说明的帧是否匹配。

如果匹配,连接继电器L(n)标志闪烁,同时保存接收到的数据在值定区域。

BCC计算举例

当按如下的方法设定帧时,出现以下的结果。

(1)默认值设定

 

段输入的分类

总和检查的值

最后一个传送帧

BCC类型设定

ASCII类型

十六进制类型

ASCII输入

31+32+33+34+04=CE

0531323334044341

053132333404CE

Hex输入

12+34+04=4A

051234043441

051234044A

 

(2)和(SUM)1,异或(XOR)1或者乘积(MUL)1设定

a)和(SUM)1

段输入的分类

总和检查的值

最后一个传送帧

BCC类型设定

ASCII类型

十六进制类型

ASCII输入

05+31+32+33+34+04=D3

0531323334044433

053132333404D3

Hex输入

05+12+34+04=4F

051234043446

051234044F

b)XOR1

段输入的分类

总和检查的值

最后一个传送帧

BCC类型设定

ASCII类型

十六进制类型

ASCII输入

05^31^32^33^34^04=05

0531323334043035

05313233340405

Hex输入

05^12^34^04=27

051234043237

0512340427

c)MUL1

段输入的分类

总和检查的值

最后一个传送帧

BCC类型设定

ASCII类型

十六进制类型

ASCII输入

05x31x32x33x34x04=60

0531323334043630

05313233340460

Hex输入

05x12x34x04=20

051234043230

0512340420

d)补码设定

补码计算

=hD3(总和检查的值)

位7位0

1

1

0

1

0

0

1

1

1’补码=h2C(最后一个总和检查的值)

位7位0

0

0

1

0

1

1

0

0

2’补码=1’complement+1=h2D(最后一个总和检查的值)

位7位0

0

0

1

0

1

1

0

1

e)模设定

模设定如下

=hD3(s总和检查值)

位7位0

1

1

0

1

0

0

1

1

=hFF(模值)

位7位0

1

1

1

1

1

1

1

1

AND模=hD3

位7位0

1

1

0

1

0

0

1

1

OR模=hFF

位7位0

1

1

0

1

0

0

1

1

异或(ExclusiveOR)模=h2C

位7位0

0

0

1

0

1

1

0

0

 

8.2.3指令

指令

可以使用的设备

步数

标志

M

P

K

L

F

T

C

S

D

#D

整数

错误

(F110)

(F111)

进位

(F112)

SND8

S1

O

5

O

S2

O

O

O

O

O

O

错误

(F110)

当指定区域溢出时,出现错误标志

帧号,在参数中指定whichisdesignatedatparameter

n

设定

SND8nD

通信状态已存储的设备

D

 

SND8

1)功能

当通讯条件满足时,根据在参数中指定的协议开始通讯。

‘n’是在参数中指定的帧数

‘D’是通信状态已存储的设备

2)编程举例

[SND83M000]

P0020

当输入条件满足时,根据用户定义的3中的协议开始通讯。

通讯状态存储在M000,M000格式如下

位15位8位1位0

已完成位

错误位

错误代码

已完成位:

传送正常完成时,在一次扫描期间这个位变成on。

错误位:

当通讯错误出现时

错误代码:

当错误位变成on时,它存储错误代码。

3)错误代码

代码

错误类型

解释

06

从设备占线

发送或者等待接收

09

参数错误

通讯参数设定错误,连接使能(enable)设定错误

10

帧类型错误

没有设定帧或者帧没有发送’

8.2.4举例

这个例子假定通过用户自定义的协议在MK80S之间进行通讯。

系统构造如下,电缆与1:

1专用协议通讯一样。

T

 

 

 

 

 

在主站的M区域的数据发送到从站,同时从站保存接收到的数据在M区域作为直接变量。

发送数据至主站。

这个过程在主站和从站之间重复。

 

1)主站的编程和设定通讯参数

(1)选择通讯参数,通讯方法和通讯通道。

.

然后在协议和模式项目下,选择‘用户自定义’(清单项目被激活)

点击‘清单’

双击数目‘0’

 

按照上面的方法,指定头,段,发送/接收,尾。

然后点击BCC设定

按照上面的方法,指定BCC设定。

点击OK按钮,用户可以看到指定的帧清单窗体。

 

双击1号帧

BCC设定方法与帧0相同。

在帧设定和BCC设定完成时,点击OK按钮。

用户可以看到指定的帧清单窗体。

 

编程

 

当数据在1号帧接收时,在一次扫描期间,连接继电器L001变成on。

在这时M000增加。

同时M000值移动到输出继电器P004。

M000的新值经每秒的间隔再次发送。

(F092是1秒周期标志)

发送的数据正常时保存在D000。

当错误出现时,发送错误的数目保存在D001。

当接收数据时,MK80S自动地在帧清单中搜索同样的协议。

因此,MK80S不接收指令。

(如果相同的协议存在,MK80S接收上一个帧号中的数据。

 

2)从站设定和编程

打开一个新的工程文件,设定新的参数。

在设定了通讯方法和通道后点击清单。

双击帧清单‘0’

 

在设定了头,段,尾后点击BCC设定。

在BCC设定完成后,点击OK按钮。

 

用户可以看到指定的帧清单。

以如下的方法设定帧号‘1’

双击BCC设定,然后设定BCC(见下表)

 

用户可以看到指定的帧清单

 

点击OK按钮

 

编程

 

当数据在0号帧接收时,在一次扫描期间,连接继电器L000变成on。

在这时P004增加。

同时P004值移动到输出继电器M000。

P004的新值经每秒的间隔再次发送。

(F092是1秒周期标志)

发送的数据正常时保存在D000。

当错误出现时,发送错误的数目保存在D001。

~84

memo

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

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

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

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