當前位置:編程學習大全網 - 編程語言 - plc編程屬於vb編程嗎?

plc編程屬於vb編程嗎?

S7-200 PLC的PPI協議

通過軟硬件攔截的方法,分析PLC內部固有的PPI通信協議,然後上位機使用VB編程,遵循PPI通信協議,讀寫PLC數據,實現人機操作任務。與壹般的自由通信協議相比,這種通信方式省略了PLC的通信編程,只需要編寫上位機的通信編程資源。

S7-226編程端口的物理層是RS-485結構。西門子提供MicroWin軟件,使用PPI(指向。

Point)協議,可用於傳輸和調試PLC程序。在現場應用中,當需要PLC和PC之間的通信時,通常使用自定義協議與PC進行通信。在這種通信模式下,程序員需要先定義自己的自由通信格式,在PLC中編寫代碼,通過中斷的方式控制通信端口的數據收發。這樣PLC編程調試復雜,占用了PLC的軟件中斷和代碼資源。而且當PLC的通訊口定義為自由通訊口時,PLC的編程軟件無法監控PLC,給PLC程序調試帶來不便。

西門子

S7-200PLC編程通訊接口,內部固化的通訊協議是PPI協議,如果上位機遵循PPI協議讀寫PLC,可以省略編寫PLC通訊代碼。如何獲得PPI協議?PLC的編程軟件在讀寫PLC數據時,可以使用第三串口監聽PLC的通訊數據,或者使用軟件的方法截取開放通訊口的數據,然後匯總分析PPI協議的數據讀寫報文。這樣,上位機就可以通過遵循PPI協議方便地讀寫PLC內部數據,實現上位機的人機操作功能。

軟件設計

系統中的測量和控制任務由西門子完成。

S7-226PLC完成,PLC工作在循環掃描模式。時間到了,它將執行數據采集或PID控制的任務,完成現場的信號控制。計算機監控軟件由VB編寫,串行數據通信由MSComm控件完成。通信協議是PPI協議。

PPI協議

西門子生產者價格指數(點

點)通信協議采用主從式通信方式,壹次讀寫操作的步驟包括:首先上位機發出讀寫命令,PLC做出正確響應。上位機收到此響應後,發送確認應用命令,PLC完成正確的讀寫響應,並響應上位機數據。這樣收發兩次數據,完成壹次數據的讀寫[5]。

通信數據報文格式大致如下:

1.讀寫應用程序的數據格式如下:

南達科他州

LER足球俱樂部DASP SSAP足球俱樂部

標清:(開始

分隔符)開始分隔符(68H)

LE:(Length)消息數據長度

LER:(重復長度)重復數據長度

標清:

(起始分隔符)起始分隔符(68H)

山:(來源

Address)源地址,是指地址的指針,是地址值乘以8。

達:(目的地

Address)目標地址,指的是地址的指針,是地址值乘以8。

FC:(功能代碼)功能代碼

DSAP:(目的地

服務接入點)目的地服務接入點。

SSAP:(源服務訪問

點)源服務訪問點

杜:(數據單元)數據單元

FCS:(幀校驗序列)校驗碼

艾德:(結束

分隔符)結束分隔符(16H)

報文數據長度和重復數據長度是從DA到DU的數據長度,校驗碼是從DA到DU的數據的和校驗,只取最後壹個字節值。

在讀寫PLC的變量數據時,讀取數據的功能碼是

6CH,寫數據的功能碼是7CH。

2.PLC接收讀寫命令,驗證無誤。返回的數據格式是

E5H

3.確認讀寫命令的數據格式為:

SD SA DA FC FCS ED

其中SD是初始符號,即10H。

SA是數據源地址。

DA是目的地址

FC為功能碼,取5CH。

FCS是SA+DA+FC之和的最後壹個字節。

ED是終結者,走16H。

PPI協議的軟件編程

使用PC機與PLC通信時,PC機使用VB編程,計算機使用PPI電纜或普通485串口與PLC的編程口連接,通信系統采用主從式結構。PC機遵循PPI協議格式,發出讀寫申請,PLC返回相應數據。該計劃的實施如下:

1,串口初始化程序:

MSComm1。CommPort = 1

MSComm1。設置= "9600,e,8,1 "

MSComm1。InputLen = 0

MSComm1。RThreshold = 1

MSComm1。輸入模式=

comInputModeBinary

PPI協議將串口定義為以二進制形式發送和接收數據,因此報文的通信效率高於ASCII碼。

2.串口數據讀取程序,以讀取VB100數據單元為例:

暗淡的

str _ read(0到32)'定義發送的數據是壹個以字節為元素的數組。

str _ Read(32)= & amp;H16

相應的數組元素賦值采用以下格式:

Str _ read (29) = (100 * 8) \ 256 '地址為指針值,先取高位地址指針。

Str_

Read (30) = (100 * 8) mod 256 '取低位地址指針。

Str_ Read (24) = 1

讀取數據的長度(字節數)

對於I=4到30

Temp_FCS = Temp_FCS +。

Str_Read(i)

接下來我

str _ Read(31)= Temp _ FCS Mod 256

計算FCS校驗碼,省略其他數組元素的賦值。

68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0

1 0 1 84 0 3 20 8B 16

PLC返回數據E5後,確認讀取命令並發送以下數據:

10 2 0 5C 5E

16

然後上位機的VB程序接收以下數據:

68 16 16 68 0 2 8 32 3 0 0 0 0 0 0 2 0 0 5 0 0 4 1 FF 4 0

8 22 78

16

首先識別目標地址和源地址,確認是這個應用返回的數據。然後,經過檢查,第26個數據(&;H22)是VB100字節的數據。

3.串口寫數據程序,以寫VB100數據單元為例:

暗淡的

str _ write(0到37)'定義發送的數據是壹個以字節為元素的數組。

str _ Write(37)= & amp;H16

對應的數組元素賦值,按照以下格式

str _ Write(35)= & amp;H10 '要寫入的數據值

68 20 20 68 2 0 7C

32 1 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 0 4 0 8 C B9 16

PLC返回數據

在E5之後,確認寫命令並發送以下數據:

10 2 0 5C 5E 16

然後上位機的VB程序接收以下數據:

68 12 12 68 0 2 8

32 3 0 0 0 0 0 2 0 1 0 0 5 1 FF 47

16

這是PLC正確接收和寫入信息的返回數據。

4、串行接收器:

在數據接收程序中,利用VB中的MSComm控件壹次性接收緩沖區中的所有數據,以數組的形式存儲在臨時存儲單元中,然後分析各個元素的值得到讀寫數據。

暗淡的

字節形式的RCV數組()

Dim Dis_Array作為字符串

昏暗的RCV

長的

RCV _數組= MSComm1。從串行接收緩沖器中取出數據。

RCV _萊恩=

RCV陣列

ReDim Temp(0到UBound(RCV陣列))

對於i = 0到

RCV萊恩

Dis陣列= Dis陣列& amp十六進制(RCV數組(壹))& amp" "

然後

Text1。Text = Dis _數組

顯示接收的數據。

在程序的讀寫過程中,壹次最多可以讀寫222個字節。目前數據是以整數格式讀寫的。

數據類型Str_

閱讀(27)

第四季

SM 05H

I 81H

Q 82H

M 83H

V 84H

上面的程序,以讀寫PLC的V變量區為例,也可以讀寫S7-200PLC中使用PPI協議的各種類型的數據,包括I、Q、SM、M、V、T、C、S等數據類型,可以直接讀取位、字節、字、雙字等。在上述變量中。讀取位變量時,讀取該位的字節值,然後上位機自動識別。根據讀寫的數據類型,其中Str_

Read(27)的值變化:

在控制系統中,PLC與上位機的通信采用PPI通信協議,上位機每0.5秒讀寫壹次PLC。PLC編程時,要讀取的數據,如檢測值和輸出值,都存儲在PLC的壹個連續變量區。上位機在讀取PLC的數據時,可以壹次性讀取這組連續的數據,減少了頻繁的分階段讀取數據。當修改設定值等數據時,執行寫入數據的通信操作。

  • 上一篇:vc是什麽簡稱
  • 下一篇:最好的兒童科學玩具
  • copyright 2024編程學習大全網