加入收藏 在線留言 聯系我們
關注微信
手機掃一掃 立刻聯系商家
全國服務熱線18717946324
單位新聞
呂梁西門子正規授權PLC代理商
發布時間: 2023-03-10 21:59 更新時間: 2024-11-24 08:00

呂梁西門子正規授權PLC代理商

我公司是西門子簽約代理商備有大量西門子產品潯之漫智控技術(上海)有限公司:西門子授權代理商

現貨庫存;大量全新庫存,款到48小時發貨,無須漫長貨期

西門子PLC(S7-200、S7-200 SMART、S7-300、S7-400、S7-1200、S7-1500、ET200S、ET200M、ET200SP)、觸摸屏、變頻器、工控機、電線電纜、儀器儀表等,產品選型、詢價、采購,敬請聯系,潯之漫智控技術(上海)有限公司 

●StopBits:停止位;
●SendDataEmpty:這是一個布爾型屬性,為 true時表示發送緩存為空,或者發送隊列里沒有信息;為 false時表示發送緩存不為空,或者發送隊列里有信息。

191222153838157

2.方法
●Startcomm方法用于打開串口,當打開失敗時通常會報錯。錯誤主要有 7種:⑴串口已經打開;⑵打開串口錯誤;⑶文件句柄不是通信句柄;⑷不能夠安裝通信緩存;⑸不能產生事件;⑹不能產生讀進程;⑺不能產生寫進程;
●StopComm方法用于關閉串口,沒有返回值;
●WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word )方法是個帶有布爾型返回值的函數,用于將一個字符串發送到寫進程,發送成功返回 true,發送失敗返回 false。執行此函數將立即得到返回值,發送操作隨后執行。該函數有兩個參數,其中 pDataToWrite是要發送的字符串, dwSizeofDataToWrite是發送字符串的長度。
3.事件
●OnReceiveData :procedure (Sender: Tbbbbbb;Buffer: Pointer;BufferLength: Word) of bbbbbb
當有數據輸入緩存時將觸發該事件,在這里可以對從串口收到的數據進行處理。 Buffer中是收到的數據, BufferLength是收到的數據長度。
●OnReceiveError : procedure(Sender: Tbbbbbb; EventMask : DWORD)
當接收數據出現錯誤時將觸發該事件

4083356394.jpg

2.3 通訊協議

本通信協議應用于D08-8CZM型流量積算儀與上位機的通信,數據以16進制格式傳輸,波特率:9600;數據位8位;停止位:1位;效驗位:無。本協議與MODBUS協議兼容,可以通過上位機顯示流量積算儀的瞬時流量、累積流量、滿量程、單位和閥狀態(包括閥控、關閉和清洗),而且可以通過上位機設定流量積算儀的瞬時流量、使流量積算儀的累積流量清零。因此在本協議用到了MODBUS協議的命令$03(Reading 1~9words)、命令$05(Force single coil)和命令$06(Writing 1 word)。

使用命令$03可以通過上位機讀流量積算儀的當前狀態,其通信協議的具體格式為:

上位機 積算儀:01 03 00 02 00 08 E5 CC

各字節含義:

01: MODBUS地址;
03: 功能碼03(Reading 1~9words);
00 02:起始地址,00為高8位,02為低8位;
00 08:讀取的字數;
E5 CC:CRC效驗值,E5為CRC的低8位,CC為高8位。

上位機 積算儀:01 03 10 (1)~(16) CRCL CRCH

各字節含義:

01:MODBUS地址;
03:MODBUS命令號;
10:上傳的字節數;

(1)~(4):瞬時流量值;“00~09"表示數字“0~9",“10~19"表示“0.~9.";
(5)~(10):流量累積值;同上;
(11)~(14):滿量程;同上;
(15):流量單位;00表示SCCM和SCC,01表示SCCM和SL,11表示SLM和SL;
(16):閥狀態;00表示關閉,80表示閥控,FF表示清洗;
CRCL:CRC的低八位;CRCH:CRC的高8位。

3、用VB實現串行通訊

3.1 MSComm控件

VB的通信控件MSComm能夠提供串行通信的全部功能,程序編寫、調試簡單方便,開發速度快,該控件封裝了通信過程中的底層操作程序,用戶只需設置和監控控件的屬性和事件,就可以方便地實現異步串行通信。

采用MSComm控件接收數據,按照接收方式分兩種形式:事件驅動方式,定時查詢方式。本例為適應流量的實時控制采用定時驅動方式,若定時器計時到,通過串行通信口向地址流量積算儀發出讀寫等操作命令,等待時間到則檢查InBufferCount屬性值來判斷輸入緩沖區中是否接受到了相應數目的字符,從而進行讀取、判斷數據合法性和數據存儲、處理等操作。

3.2 通信功能的編程實現

程序框圖如下:


圖2 串口通信程序框圖

串口初始化:MSComm1.CommPort = 1
MSComm1.SThreshold = 1
MSComm1.Settings = 9600,N,8,1
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.bbbbbMode = combbbbbModeBinary

打開串口并定時發送數據命令:Private Sub Timer1_Timer()
Dim bytearray(0 To 7) As Byte
bytearray(0) = &H1
bytearray(1) = &H3
bytearray(2) = &H0
bytearray(3) = &H2
bytearray(4) = &H0
bytearray(5) = &H8
bytearray(6) = &HE5
bytearray(7) = &HCC
MSComm1.bbbbbLen = 21
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
MSComm1.Output = bytearray
End If



聯系方式

  • 電  話:18717946324
  • 聯系人:占雪芬
  • 手  機:18717946324
  • 微  信:18717946324