东京热亚洲精品,伊人网在线85,激情综合视频米奇,久久精品水嫩水嫩懂色,五月婷色欧美,美女激情四射扣阴逼,女同性恋日本,美女亚洲综合二区,久久久久久中出久久V

關注官方微信

EN

EN.

串口轉TCP/IP模塊的上位機TCP編程方法指南

發(fā)布時間:2010-12-26 作者:上海卓嵐 瀏覽量:7245
1.概述

使用上海卓嵐的ZLSN系列串口轉TCP/IP模塊可以方便的實現在下位機端的TCP聯(lián)網。即只要通過串口收發(fā)數據即可實現TCP/IP數據的收發(fā)。那么對于上位機,即PC機、服務器等如何通過TCP實現和串口轉TCP/IP模塊的通信呢?基本上來說有三種方式:

(1)使用虛擬串口:此時用戶在上位機通過zlvircom虛擬一個com口,這個com口會在驅動底層和TCP/IP轉串口模塊建立網絡連接。上位機還是通過串口(COM口)和TCP/IP模塊通信。更多詳情參考:虛擬串口介紹。

(2)使用Modbus TCP協(xié)議:采用ZLAN5142、ZLSN2140、ZLSN3140等具備Modbus TCP轉Modbus RTU的TCP/IP模塊可以實現將Modbus TCP協(xié)議直接轉化為RTU協(xié)議。這樣用戶上位機可以使用通用的Modbus TCP協(xié)議,比如組態(tài)軟件、OPC軟件等。這些軟件都是支持Modbus TCP的,這樣用戶可以借助這些工控軟件進行開發(fā)。更多詳情參考:Modbus TCP轉RTU介紹。

(3)TCP網絡軟件編寫:第三種方法是本文介紹的主要方法,用戶通過VC、VB、Delphi、C++Builder等開發(fā)環(huán)境開發(fā)出TCP軟件和TCP/IP轉串口模塊通信。幾乎所有的通用操作系統(tǒng)都支持TCP/IP協(xié)議棧,操作系統(tǒng)提供了一種稱之為socket接口的通用的編程規(guī)范來調用操作系統(tǒng)的TCP/IP協(xié)議棧。實際中,在windows上此socket接口就是一個API接口,最終用戶函數的執(zhí)行,直接調用了操作系統(tǒng)提供的DLL庫的TCP/IP功能。

另外如果用戶需要實現ZLSN模塊特有的一些管理。比如在局域網中搜索模塊、讀取模塊的參數、修改模塊的參數,卓嵐也提供專用的設備管理函數庫DLL。

2. TCP/IP基礎

我們知道TCP/IP轉串口模塊ZLSN2002基本上有TCP服務器、TCP客戶端、UDP這幾種工作模式,對于不同的工作模式,上位機軟件也需要選擇不同的TCP/IP工作模式和他對應:即模塊為TCP服務器時上位機應該為TCP客戶端、模塊為TCP客戶端時上位機應該為TCP服務器、模塊為UDP時上位機也是UDP模式。請參考:TCP的工作模式的選擇介紹

3. socket函數和TCP/UDP

socket是通用的TCP/UDP調用接口,含有的主要主要函數如表所示:

我們通過socket函數的不同調用。來實現上位機工作在不同的模式:
(1)TCP客戶端模式:上位機調用connect這個socket函數實現向TCP/IP轉串口模塊發(fā)起連接,實現TCP客戶端的功能。
(2)TCP服務器模式:上位機調用listen這個socket函數實現TCP服務器功能,即在一個特定端口等待ZLSN2002模塊的連接。
(3)UDP模式:無需監(jiān)聽和發(fā)起連接,直接調用send和recv函數發(fā)送和接收即可。

4. socket編程例子

這里提供了免費了socket通信的源代碼程序《計算機端socket編程例子》。在該代碼中使用了非常簡潔的代碼,實現了上位機作為TCP客戶端時的數據收發(fā)。讓用戶對socket編程馬上有一個初步的印象。

5. VC的CSocket編程例子

在Microsoft Visula C++中已經對底層的socket接口再進行一次封裝,即更加高級的CAsyncSocket、CSocket類。使用這兩個類可以實現更加容易的編程。在此提供免費的代碼《SocketTest的CSocket編程源代碼》。

6. 網絡編程的注意事項

發(fā)送大量數據不丟失的方法:一些用戶通過計算機向ZLSN模塊發(fā)送大批量數據,此時由于網絡發(fā)送的數據過快,而串口的輸出速度有限,經過一段時間肯定會導致發(fā)送不成功。所以一般情況下,用戶需要檢查send()的返回值,只有返回值和期望發(fā)送的數據量一樣時,才算發(fā)送完畢。否則一定要繼續(xù)調用send()發(fā)送未發(fā)送完畢的數據。通過這種檢測,可以保證發(fā)送的數據不丟失。

武平县| 阳谷县| 涟源市| 江津市| 浮山县| 克东县| 邵阳市| 兴国县| 双辽市| 顺义区| 色达县| 建始县| 农安县| 静海县| 邮箱| 铜陵市| 布拖县| 翁牛特旗| 浪卡子县| 襄汾县| 许昌县| 安康市| 武乡县| 泰州市| 应城市| 常德市| 英吉沙县| 东至县| 长丰县| 青浦区| 霍林郭勒市| 新疆| 淮北市| 黔西县| 道孚县| 合山市| 大安市| 韶山市| 金平| 乐昌市| 新和县|