我們可以看到無論是西門子的中高端PLC還是低端PLC,都是支持開放式TCP/UDP通信的,既然都支持,我們來看下如何實現。
眾所周知,對于Socket通信來說,是可以支持TCP、UDP等多種通信方式,但是今天在這里,我們主要針對TCP這種通信方式。除此以外,大家都知道,Socket會存在服務器和客戶端的說法,也就意味著,同樣是使用Socket通信,我們仍然需要確定到底PLC是作為服務器還是作為客戶端,因為不管對于PLC編程或者上位機開發來說,這兩種方式都是完全不同的,下面做具體介紹。
一、PLC作為TCP服務器的實戰應用
(1)PLC編程
1、創建一個TCPServer的子程序,拖拽一個TCP_CONNECT的庫指令,對于該指令的每個引腳對應的含義,大家可以按下F1直接獲取在線幫助,程序段1編寫如下圖所示:
2、拖拽一個TCP_SEND的庫指令,該指令每個引腳填寫,ConnID為1,Req為觸發條件,必須為沿信號,這里為了方便,直接使用1秒的脈沖信號,DataLen及DataPtr為發送的起始字節指針及發送的字節長度,程序段2如下圖所示:
3、拖拽一個TCP_RECV的庫指令,該指令的引腳填寫,ConnID統一為1,MaxLen為接收的Zui大程度,DataPtr表示接收字節存放的起始位置,程序段3如下圖所示:
4、Zui后需要編譯,編譯會提示需要給庫分配地址,點擊文件下的存儲器,給該庫分配地址即可,然后在MAIN主程序中調用TCPServer這個子程序,并下載到PLC中,PLC編程部分結束。
(2)TCP調試助手測試
如果PLC程序編寫沒問題,打開一個網絡調試助手,輸入對應的IP地址及端口號,即可連接上服務器。
連接服務器后,PLC端會自動每隔一秒發送200個字節數據過來,這200個字節即對應VB100-VB299的值。
(3)上位機客戶端軟件開發
通過與編程軟件的狀態圖表進行對照,可以實時讀取PLC數據,并隨時設置相應的數值。
二、PLC作為TCP客戶端的實戰應用
(1)PLC編程
1、創建一個TCPClient的子程序,拖拽一個TCP_CONNECT的庫指令,與服務器程序不同的是,這里需要把Active設置為ON,同時IP地址和端口號需要根據上位機實際情況填寫,程序段1編寫如下圖所示:
2、拖拽一個TCP_SEND的庫指令,該指令的引腳填寫,ConnID為2,Req為觸發條件,必須為沿信號,這里為了方便,直接使用1秒的脈沖信號,DataLen及DataPtr為發送的起始字節指針及發送的字節長度,程序段2如下圖所示:
3、拖拽一個TCP_RECV的庫指令,該指令的引腳填寫,ConnID統一為2,MaxLen為接收的Zui大程度,DataPtr表示接收字節存放的起始位置,程序段3如下圖所示:
4、Zui后需要編譯,如果已經編寫過服務器程序,這里就不需要分配地址了,直接在MAIN主程序中調用TCPClient這個子程序,并下載到PLC中,PLC編程部分結束。
(2)TCP調試助手測試
如果PLC程序編寫沒問題,打開一個網絡調試助手,設置模式為TCP Server,輸入端口號為2000,即可開啟服務器。
服務器開啟后,PLC端會自動連接服務器,并且每隔一秒發送200個字節數據過來,這200個字節即對應VB300-VB499的值。
(3)上位機服務器軟件開發
通過與狀態圖表進行對比,驗證可以正常讀取和寫入PLC數據。
- 西門子S7-1200控制伺服V90 PN 2024-11-23
- 西門子 200smart PID組態設置 2024-11-23
- 西門子編程語言---SCL(八)間接尋址與GOTO語句 2024-11-23
- 西門子編程語言---SCL(七)數據轉換、比較語句、算數語句 2024-11-23
- 西門子編程語言---SCL(四)加減計數器 2024-11-23
- 三線制西門子壓力傳感器接線方式 2024-11-23
- 簡介西門子ET200模擬量輸入模塊 2024-11-23
- 西門子編程語言---SCL(四)定時器的使用 2024-11-23
- 西門子編程語言---SCL(三)上升沿與下降沿 2024-11-23
- 西門子白城語言SCL(二)IF語句 2024-11-23
- 西門子編程語言SCL(一)與或非 2024-11-23
- 西門子G120變頻器參數備份 2024-11-23
- 普羅菲斯觸摸屏與西門子1510SP-1 PN連接后觸摸屏死機 2024-11-23
- 西門子PLC如何減少背景數據塊的使用 2024-11-23
- 西門子PLC中FB和FC區別、管腳定義、臨時變量引起的麻煩 2024-11-23
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415