當(dāng)前位置:機(jī)電之家首頁(yè) >> PLC技術(shù)>> plc應(yīng)用 >> ab plc應(yīng)用 >> 編程遠(yuǎn)程讀取AB PLC的數(shù)據(jù)
編程遠(yuǎn)程讀取AB PLC的數(shù)據(jù)

AB公司開發(fā)的RSbbbb是讀取遠(yuǎn)程AB PLC數(shù)據(jù)的上佳工具,它能實(shí)現(xiàn)讀取AB PLC的名種要求。但在實(shí)際的系統(tǒng)集成中,由于遠(yuǎn)程PLC的類型多種多樣,于是,我接到一個(gè)任務(wù),自主開發(fā)程序讀取各種PLC。

在我們使用的遠(yuǎn)程設(shè)備中,有AB的PLC,西門子的PLC,LG的PLC,還有多種的RTU,但都有一個(gè)共通的特點(diǎn):通過串口訪問,只是數(shù)據(jù)協(xié)議不同,找出各方的數(shù)據(jù)協(xié)議,就一切OK了。為此,我對(duì)AB PLC進(jìn)行了一番研究。

AB公司提供了軟件,它的資料就有點(diǎn)語(yǔ)焉不詳,我不得不得用串口監(jiān)聽技術(shù)進(jìn)行串口監(jiān)聽以獲取更為直觀的資料。

一、 串口的監(jiān)聽

我利用PORTMON.EXE來(lái)監(jiān)聽串口,以下是運(yùn)行RSbbbb時(shí)我監(jiān)聽到的數(shù)據(jù):

IRP_MJ_WRITE 41 54 5A 0D

IRP_MJ_READ 41 54 5A 0D

IRP_MJ_WRITE 10 02 01 00 06 00 01 08 03 10 03 01 65

IRP_MJ_READ 10 06 10 02 00 01 46 00 01 08 00 EE 34 49 64 35 2F 30 33 20

20 20 20 20 20 20 00 00 86 10 10 8D A3 10 10 FC 10 03 18 55

IRP_MJ_WRITE 10 06

IRP_MJ_WRITE 100201000F002704A1C80789001003A3F3

IRP_MJ_READ

10 06 10 02 00 01 4F 00 27 04

00 00 C7 0C CF 0C C8 0C C6 0C 88 0C EC 0C AA 0C 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

F3 FF 0D 00 0D 00 00 00 00 00 4C 04 52 03 20 04 8B 03 84 03

00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00

00 00 00 00 02 00 00 00 00 00 00 00 1F 00 00 00 00 00 00 00

00 00 00 00 01 00 02 00 00 00 00 00 00 00 01 00 02 00 03 00

04 00 05 00 06 00 07 00 00 00 00 00 00 00 00 00 C8 00 00 00

C2 01 00 00 00 00 76 02 B6 03 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 CF 03 00 00 00 00 00 00 00 00

5D 00 C7 0C CF 0C C8 0C C6 0C 86 0C EC 0C AA 0C 00 00 00 00

10 03 8D D8

IRP_MJ_WRITE 10 06

由此可以看出,RSbbbb運(yùn)行時(shí)進(jìn)行三步:

1、 初始化MODEM:發(fā)送ATZ,確認(rèn)MODEM存在。

2、 查看PLC的數(shù)據(jù)結(jié)構(gòu),收到后發(fā)1006確認(rèn)

3、 查看N7的數(shù)據(jù),收到后發(fā)1006確認(rèn)

現(xiàn)在所要做的事步驟都很清楚了,下面的工作是理解發(fā)出的與返回的數(shù)據(jù)的含義。


二、 發(fā)送數(shù)據(jù)請(qǐng)求的格式

對(duì)于查詢PLC的數(shù)據(jù)結(jié)構(gòu),每次都是相同的請(qǐng)求,沒有必要去花費(fèi)時(shí)間。我們著力在讀取N7數(shù)據(jù)的處理方面:

發(fā)出的數(shù)據(jù)含義:

*10

*02

01

00

0F

00

27

04

A1

C8

07

89

00

*10

03

A3

F3

起始位

起始位

目的址

目的址

讀數(shù)據(jù)

保留

ID號(hào)

ID號(hào)

字個(gè)數(shù)

區(qū)域

整數(shù)型

起始字

結(jié)束標(biāo)志

結(jié)束標(biāo)志

校驗(yàn)位

校驗(yàn)位

*:加*不參與CRC32運(yùn)算。

CRC32的計(jì)算方法:VB代碼如下:

Function CalcCRC(DATA(), Arraylen) As Long

Dim I, J, K, H As Integer

For I = 0 To Arraylen

J = J Xor DATA(I)

For K = 1 To 8

H = J Mod 2 'test if bit will be shifted out

J = Int(J / 2) 'shift right

If H Then

J = J Xor &H1000A001 'xor with constant

J = J - &H10000000 'bbbbb top word

End If

Next K

Next I

CalcCRC = J

End Function

Private Sub Command1_Click()

Dim I, J As Long

Length = (Len(Text3.Text)) / 2 - 1

ReDim Init(Length)

For I = 0 To Length

Init(I) = Val("&H" + m i* d(Text3.Text, 2 * I + 1, 2))

Next I

J = CalcCRC(Init(), Length)

Text2.Text = Hex(J Mod 256)

Text1.Text = Hex(Int(J / 256))

End Sub

發(fā)送這串字符將會(huì)能得到得到N7的數(shù)據(jù)返回,返回的數(shù)據(jù)以字為單位,開始字與字個(gè)數(shù)決定返回的內(nèi)容。

三、 接收到的數(shù)據(jù)

如上接收到的數(shù)據(jù),以 10 06 10 02開始,00 01 4F 00 27 04為目的址與ID號(hào),現(xiàn)再接著是返回的數(shù)據(jù),每?jī)蓚€(gè)字節(jié)是一組數(shù)據(jù):如我的PLC中的定義如下:

Tagname

address

des *ri ption

Compressure

n7:68

控制流量

flue_1

n7:33

1#瞬時(shí)流量

flue_2

n7:34

2#瞬時(shí)流量

Inpressue

n7:37

總?cè)肟趬毫?

lowp_alarm

n7:28

總壓力報(bào)警下限

lowp_set

n7:106

總壓力控制設(shè)置下限

Lowpressure

n7:26

總壓力控制下限

m i* dtank_p

n7:36

中間罐壓力

outp_low_alarm

n7:29

出口壓力當(dāng)前報(bào)警下限值

outp_low_set

n7:109

出口壓力報(bào)警下限設(shè)置

Outpressure

n7:35

出口壓力

p_c_down

n7:125

降低入口壓力

p_c_up

n7:124

提高入口壓力

upp_alarm

n7:27

總壓力報(bào)警上限

upp_set

n7:105

總壓力控制設(shè)值上限

Uppressure

n7:25

總壓力設(shè)值上限

地址為字,即兩個(gè)字節(jié)。

這樣,我們可以讀取指定的區(qū)域數(shù)據(jù),并根據(jù)你在PLC中的設(shè)定分解數(shù)據(jù)你就可以通過自編的程序讀取AB PLC的數(shù)據(jù)了。

結(jié)語(yǔ)

這就是AB PLC的數(shù)據(jù)協(xié)議,由于AB 的說(shuō)明書中所言不詳,而我讀取的PLC是另一個(gè)公司開發(fā)的程序,所以在數(shù)據(jù)的含義方面花費(fèi)了不少時(shí)間,而在編程方面的時(shí)間倒時(shí)不多。這次總結(jié)出來(lái)與大家共享,應(yīng)能使大家免去摸索之苦。

作者:未知 點(diǎn)擊:588次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:編程遠(yuǎn)程讀取AB PLC的數(shù)據(jù)
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《編程遠(yuǎn)程讀取AB PLC的數(shù)據(jù)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

吳小姐 【求購(gòu)】  粉碎機(jī)  2025-12-5
 【求購(gòu)】  冶煉用的重...  2025-12-5
柳女士 【求購(gòu)】  斷路器  2025-12-5
林志揚(yáng) 【求購(gòu)】  無(wú)石棉墊片  2025-12-4
張一帆 【求購(gòu)】  首件測(cè)試儀  2025-12-4
王飛 【求購(gòu)】  gf流量計(jì)  2025-12-4
 【求購(gòu)】  全自動(dòng)印刷...  2025-12-4
 【求購(gòu)】  LED屏  2025-12-3
VIP公司推薦