DVP通讯协定.docx

上传人:b****8 文档编号:9380130 上传时间:2023-02-04 格式:DOCX 页数:14 大小:31.53KB
下载 相关 举报
DVP通讯协定.docx_第1页
第1页 / 共14页
DVP通讯协定.docx_第2页
第2页 / 共14页
DVP通讯协定.docx_第3页
第3页 / 共14页
DVP通讯协定.docx_第4页
第4页 / 共14页
DVP通讯协定.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

DVP通讯协定.docx

《DVP通讯协定.docx》由会员分享,可在线阅读,更多相关《DVP通讯协定.docx(14页珍藏版)》请在冰豆网上搜索。

DVP通讯协定.docx

DVP通讯协定

PRODUCTSPECIFICATION

DVPSeriesPLCCommunicationProtocol

Signature

Date

WrittenBy

CheckedBy

Application

ApprovedBy

1.簡介

本手冊說明DVP-PLC作為從端(Slave)通訊口之通訊協定,依此通訊方法可存取PLC內部元件,提供給主端(Master)或人機介面與PLC連線方法之參考。

2.軟體規範

A.機能

PLC型號

軟體版本

DVP-ES/EX/SS/EC

V4.7(含)以上

DVP-EP

V1.0(含)以上

DVP-EH

V1.0(含)以上

B.通訊規範

1.通訊介面

PLC型號

通訊介面

DVP-ES/EX/SS/EC

V4.7(含)以上

COM1:

RS-232

COM2:

RS-485

二選一,亦即不可同時使用

V5.1(含)以上

COM1:

RS-232

COM2:

RS-485

可同時使用

DVP-EP/EH

COM1:

RS-232

COM2:

RS-485/RS-232RS-422(依擴充卡而定)

可同時使用

2.以MODBUSASCII模式的通訊協定與外界通信

3.通訊格式

參數

內容

傳輸速度(Baudrate)

9600bps

起始位元

1

資料長度

7

同位元(Parity)

偶同位(Evenparity)

停止位元

1

3.

連線方式

通訊口

連接方法

RS-232

使用連接線DVPACAB215或DVPACAB230

RS-485

主端必須具有RS-485介面,使用雙絞線,具有隔離被覆網較佳

RS-422

主端必須具有RS-422介面,使用2條雙絞線,具有隔離被覆網較佳

4.通訊協定說明

⏹通訊訊息框格式

STX

起始字元‘:

’(3AH)

ADR1

通訊位址:

ADR0

2個ASCII字元共16bits

CMD1

命令碼:

CMD0

2個ASCII字元共16bits

DATA(0)

資料內容:

DATA

(1)

n個ASCII字元共n*16bits

……….

限制n<=74個ASCII碼

DATA(n-1)

LRCCHK1

偵誤值:

LRCCHK0

2個ASCII字元共16bits

END1

結束字元:

END0

END1=CR(0DH),END0=LF(0AH)

⏹ADR(通訊位址)

PLC通訊位址出廠設定值為0x01,因此(ADR1,ADR0)=’0’,’1’’0’=30H,‘1’=31H

⏹LRCCHK(偵誤值)

偵錯方式採用LRC(LongitudinalRedundancyCheck)偵誤值。

LRC偵誤值乃是將ADR1至最後一個資料內容加總,將該值取2補數(2’sComplement)得到之結果即為LRC偵誤值。

例:

STX

‘:

01H+03H+04H+01H+00+01H=0AH

0AH的2補數為F6H

註1:

2補數的求法:

(1補數再加1)

0A(H)=00001010,先取1補數(將b0~b7反相)得11110101,再加1為11110110=F6(H)即為0A(H)的2補數。

註2:

判斷的方法

因此在收到一串完整的通訊命令,要檢查這串通訊命令是否有誤,只要將(ADR1,0)至(LRC1,0)加總等於0,則通訊無誤,否則表示命令中資料有些是錯誤的。

ADR1

‘0’

ADR0

‘1’

CMD1

‘0’

CMD0

‘3’

起始資料位址

‘0’

‘4’

‘0’

‘1’

資料數

‘0’

‘0’

‘0’

‘1’

LRCCHK1

‘F’

LRCCHK0

‘6’

END1

CR

END0

LF

◆通訊異常PLC的回應:

PLC收到完整的通訊命令時,會判斷命令是否有效,造成無效的原因有:

原因

Exceptioncode

LRCCHKERROR

07

DeviceAddressInvalid

02

要求的資料超過範圍

03

CommandCodeInvalid

01

通訊命令格式Invalid

07

例:

使用命令碼01讀取X000~X017的狀態

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

01

StartingAddressHi

04

StartingAddressLo

00

NumberofPointsHi

00

NumberofPointsLo

10

ErrorCheck(LRC)

EA

PLC回應:

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

81

ExceptionCode

02

ErrorCheck(LRC)

7C

因為Address0400對Function01是不合法的,所以回應Exceptioncode=0x02,且Function01被設為81(b7被設為1),亦即由回應的Functioncode的MSB被設為1表示PLC回應ErrorMessage,並且由Exceptioncode可得知是何種錯誤。

⏹DATA(資料字元)及CMD(命令指令)

◆可用之命令碼敘述如下:

(其中元件位址請參考文件”DVP-PLC元件通訊位址”)

Code

Name

適用元件

01

ReadCoilStatus

S,Y,M,T,C

02

ReadInputStatus

S,X,Y,M,T,C

03

ReadHoldingRegisters

T,C,D

05

ForceSingleCoil

S,Y,M,T,C

06

PresetSingleRegister

T,C,D

15

ForceMultipleCoils

S,Y,M,T,C

16

PresetMultipleRegister

T,C,D

17

ReportSlaveID

None

◆資料字元之格式依命令碼而定,依可用之命令碼的資料內容分別敘述如下:

FunctionCode:

01,ReadCoilStatus

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

01

StartingAddressHi

06

StartingAddressLo

14

NumberofPointsHi

00

NumberofPointsLo

25

ErrorCheck(LRC)

BF

NumberofPoints(max)=255=0x00FF

Example:

ReadingCoilsT20~T56fromslavedevice01

PC→PLC“:

010106140025BFCRLF”

PLC→PC“:

010105CD6BB20E1BD6CRLF”

FieldName

Contents

SlaveAddress

01

Function

01

BytesCount

05

Data(CoilsT27…T20)

CD

Data(CoilsT35…T28)

6B

Data(CoilsT43…T36)

B2

Data(CoilsT51…T44)

0E

Data(CoilsT56…T52)

1B

ErrorCheck(LRC)

E6

FunctionCode:

02,ReadInputStatus

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

02

StartingAddressHi

05

StartingAddressLo

14

NumberofPointsHi

00

NumberofPointsLo

25

ErrorCheck(LRC)

BF

Example:

ReadingContactY024~Y070fromslavedevice01

PC→PLC“:

010205140025BFCRLF”

PLC→PC“:

010105CD6BB20E1BE5CRLF”

FieldName

Contents

SlaveAddress

01

Function

02

BytesCount

05

Data(CoilsY033…Y024)

CD

Data(CoilsY043…Y034)

6B

Data(CoilsY053…Y044)

B2

Data(CoilsY063…Y054)

0E

Data(CoilsY070…Y064)

1B

ErrorCheck(LRC)

E5

⏹FunctionCode:

03,ReadHoldingRegister

HoldingRegister:

T,C,D

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

03

StartingAddressHi

06

StartingAddressLo

14

NumberofPointsHi

00

NumberofPointsLo

08

ErrorCheck(LRC)

DA

NumberofPoints(max)

=18(for16bitregister),=9(for32bitregister)

Example:

ReadingCoilsT20~T27fromslavedevice01

PC→PLC“:

010306140008DACRLF”

PLC→PC“:

01031000010002000300040005000600070008B8CRLF”

FieldName

Contents

SlaveAddress

01

Function

03

BytesCount

10

DataHi(T20)

00

DataLo(T20)

01

DataHi(T21)

00

DataLo(T21)

02

DataHi(T22)

00

DataLo(T22)

03

DataHi(T23)

00

DataLo(T23)

04

DataHi(T24)

00

DataLo(T24)

05

DataHi(T25)

00

DataLo(T25)

06

DataHi(T26)

00

DataLo(T26)

07

DataHi(T27)

00

DataLo(T27)

08

ErrorCheck(LRC)

C8

⏹FunctionCode:

05,ForceSingleCoil

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

05

CoilAddressHi

05

CoilAddressLo

00

ForceDataHi

FF

ForceDataLo

00

ErrorCheck(LRC)

F6

MMNN=0xFF00….CoilON

MMNN=0x0000….CoilOFF

Example:

ForcingCoilY000ON

PC→PLC“:

01050500FF00F6CRLF”

PLC→PC“:

01050500FF00F6CRLF”

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

05

CoilAddressHi

05

CoilAddressLo

00

ForceDataHi

FF

ForceDataLo

00

ErrorCheck(LRC)

F6

⏹FunctionCode:

06,PresetSingleRegister

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

06

RegisterAddressHi

06

RegisterAddressLo

00

PresetDataHi

12

PresetDataLo

34

ErrorCheck(LRC)

AD

Example:

SettingRegisterT0to0003

PC→PLC“:

010606001234ADCRLF”

PLC→PC“:

010606001234ADCRLF”

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

06

RegisterT0AddressHi

06

RegisterT0AddressLo

00

PresetDataHi

12

PresetDataLo

34

ErrorCheck(LRC)

AD

Switch(c)

Case0:

T0

Q→:

010606001234ADCRLF

Case1:

C0

Q→:

01060E001234AFCRLF

Case2:

C232

Q→:

01060EE812345678EFCRLF

Case3:

D10

Q→:

0106100A123499CRLF

Case4:

D1000

Q→:

010613E81234BACRLF

⏹FunctionCode:

15,ForceMultipleCoils

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

0F

CoilAddressHi

05

CoilAddressLo

00

QuantityofCoilsHi

00

QuantityofCoilsLo

0A

ByteCount

02

ForceDataHi

CD

ForceDataLo

01

ErrorCheck(LRC)

11

QuantityofCoils(max)=255

Example:

SettingCoilY007…Y000=11001101,Y011…Y010=01.

PC→PLC“:

010F0500000A02CD0111CRLF”

PLC→PC“:

010F0500000AE1CRLF”

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

0F

RegisterT0AddressHi

05

RegisterT0AddressLo

00

PresetDataHi

00

PresetDataLo

0A

ErrorCheck(LRC)

E1

⏹FunctionCode:

16,PresetMultipleRegister

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

10

StartingAddressHi

06

StartingAddressLo

00

NumberofRegisterHi

00

NumberofRegisterLo

02

ByteCount

04

DataHi

00

DataLo

0A

DataHi

01

DataLo

02

ErrorCheck(LRC)

C6

NumberofRegister(max)

=16(for16bitregister)

=8(for8bitregister)

Example:

SettingRegisterT0to000A,T1to0102.

PC→PLC“:

01100600020004000A0102D6CRLF”

PLC→PC“:

011006000002E7CRLF”

FieldName

Example(Hex)

Heading

3A

SlaveAddress

01

Function

10

StartingAddressHi

06

StartingAddressLo

00

NumberofRegistersHi

00

NumberofRegistersLo

02

ErrorCheck(LRC)

E7

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

当前位置:首页 > 工作范文 > 制度规范

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

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