Begin-
不可否認,目前工業現場仍然會有很多串口設備的存在,對于這些串口設備,如果想要聯網,就必須要轉換成網絡接口,這時候就會用到串口服務器。
串口服務器內置CPU,可以實現串口和網絡接口之間的互相轉換,能將傳統的RS-232/422/485設備立即聯網,使用串口服務器可以在世界的任何位置, 通過網絡,用您的計算機來存取、管理和配置遠程的設備。串口服務器廣泛應用于POS、ATM、 顯示屏、鍵盤、刷卡機、讀卡器、交換機、加油機、RTU、數控機床、測試儀表等,輕松連接以太網,實現網絡化管理和遠程控制。
1、 無人值守稱重系統:利用串口服務器可以實現稱重儀表、收據打印機、道閘等稱重配套設備聯入局域網,可以完成集中控制和數據統計管理。
2、門禁機:門禁機加上串口服務器,這樣傳統的門禁即可變身為TCP/IP網絡門禁機。
3、遠程控制PLC:PLC增加串口服務器,編程軟件結合虛擬串口,這樣就實現了遠程給PLC編程。
不同品牌的串口服務器使用方法大同小異,這里主要以山東濟南有人的USR-TCP232-410s為例,跟大家分享一下串口服務器的使用方法。
USR-TCP232-410s是一款工業級雙串口服務器,實現RS232+485轉以太網雙向透傳功能,兩路串口同時獨立工作,互不影響;產品采用M4內核、TI方案,內置精心優化的TCP/IP協議棧;支持Modbus網關功能;支持雙重看門狗、多種保活機制;支持注冊包+雙向心跳包、虛擬串口、自動重連等功能。
首先看下硬件清單:里面包含一個串口服務器,同時也包含電源、一根232母頭及一根232公頭,還配備了一根網線。
接線很簡單,插上電源就可以了,它本身是支持232+485的,我這邊測試的是485的Modbus通信,還是使用之前的那個溫濕度傳感器套裝來測試,直接將溫濕度傳感器出來的A/B線接到串口服務器上就行了。
對于232通信,要用配套帶的232通信線,485的話,直接接A/B線就行了。
另外,用一根網線,將串口服務器接到電腦PC上,然后將電腦的IP地址設置成和串口服務器一致。
默認串口服務器的IP地址是192.168.0.7,電腦也設置成同一網段就可以,如果想要修改IP,也要保住先通訊上,才能修改,我這里已經將串口服務器的IP改成了192.168.1.55。
通信及接線都完成后,這時候,需要進行一下配置,配置方式有兩種,一種是用有人的配置軟件,也可以通過網頁進行配置,配置軟件,大家自己去官網下載就可以了,我這里為了方便起見,直接用的網頁來配置。
直接在地址欄,輸入IP地址即可,第一次需要輸入賬號密碼,默認賬號密碼都是admin。
切換到RS485設置頁面,主要是設置一下串口參數和Socket參數。
設置完成后,重啟模塊。
我們可以先用ModbusPoll軟件進行測試,這里要特別注意,選擇的Modbus模式是ModbusRTUOverTCP,因為串口服務器是透傳的,所以走的協議仍然是ModbusRTU協議,只不過是以TCP的模式運行而已,IP地址填寫串口服務器的IP地址,端口號的號填寫設置的26。
我們測試站點1,結果如下:
這樣子,我們就初步實現了通過串口服務器,實現ModbusRTU設備轉換成TCP通信。
-END-
面簡單介紹了C#的基礎知識,由于剛子是半路出家,所以一直以來都養成了不太注重死記硬背基礎知識,而是提倡在別人代碼基礎上修改。所以今天我們也采用這樣的方式來試一下串口通訊。
首先要準備一些軟件工具:虛擬串口、串口助手。在電腦上安裝好虛擬串口軟件,然后新建一對虛擬串口。
這一對虛擬串口創建好后,已經被軟件內部聯通了。這意味著你從串口1發出的數據,在串口2就能收到,從串口2發出的數據,從串口1就能收到,這樣就完成了串口雙向通訊。我們要做的就是學習如何接收和發送數據。
在自己編程序之前,先打開串口助手,試試兩個串口是否正確聯通了。串口在數據傳輸過程中,兩邊的協議需要一致。所以要確認兩側的波特率、奇偶校驗位、數據位、停止位等參數一致,這樣才能正常的進行數據發送和解析。
先建立一個項目,然后創建一個窗體,在窗體上按圖示建立打開串口按鈕、發送按鈕、接收數據文本框、發送數據文本框、串口列表框。之后雙擊打開串口按鈕,進入源代碼編輯界面,然后添加 引用:using System.IO; using System.IO.Ports;
之后在按鈕的源代碼中填入以下代碼:private SerialPort serialPort1=new SerialPort();
這時候我們會發現編譯器報錯了。這是因為我們沒有引用 SerialPort 控件,不必氣餒,自行添加一下。菜單欄找到: 工具–>Nuget包管理器(N)–>管理解決方案的Nuget程序包(N)
點擊管理解決方案的Nuget程序包(N),在打開的界面中選擇:瀏覽,并輸入“Serial Port“ 回車后,列表中找到 System.IO.Ports ,選中右邊的項目(我的是Port), 你自己的可能不同,點擊安裝安裝該模塊,
在彈出的框中點擊確定,安裝完成后錯誤消失。
雙擊窗體,在源代碼中輸入下方代碼:
private void Form1_Load(object sender, EventArgs e)
{
string[] ports=SerialPort.GetPortNames();
foreach (string port in ports)
{
comboBox1.Items.Add(port);
}
comboBox1.SelectedIndex=0;
}
這樣我們在窗體加載時就獲取了本電腦上所有可用的串口列表。
雙擊打開串口按鈕,添加以下代碼:
serialPort1.PortName=comboBox1.Text;
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=Parity.None;
serialPort1.StopBits=StopBits.One;
serialPort1.DataReceived +=SerialPort1_DataReceived;
serialPort1.Open();
雙擊發送按鈕,添加以下代碼:
serialPort1.WriteLine(textBox1.Text);
MessageBox.Show("數據發送成功!", "系統提示");
這樣我們就完成了發送部分代碼的編寫,可以運行一下試試了。
從圖上可以看到,我們成功發將數據從C#編寫的窗口發送到了串口助手。
今天就到這里,我們后面再講如何用串口接受數據,希望大家持續關注。
常會有學員問我,老師老師,我的plc和變頻器通訊不上了,不知道什么原因,您能幫我看看么。
其實吧,這個一般遠程是幫不上你什么的,還是要你自己去測試,找出問題,那么怎么測試呢,今天就給大家做一個詳細的解說,我們通過一個實際對的案例,結合一個叫做串口調試助手的小工具,帶大家了解,通訊出問題了,一般是怎么去查找問題的。
案例是這樣的:
一臺三菱的plc,plc的bd板和變頻器通過485的接線方式連接了變頻器,給變頻器發送了一串數據過去,這一串數據能夠讓變頻器正轉,可是變頻器就是死活不轉。
第一步,檢查接線,我們用的485 2線制的接線方法。
第二步,檢查通訊參數,兩邊都是波特率9600、數據位8位,停止位1位,偶校驗,變頻器設置為1號站,全部通訊參數都沒有問題。
第三步,觀察DB板上面的2個指示燈,在控制正轉時,s發送的指示燈閃了一下,而接收的指示燈R并沒有亮。這個時候的情況是,有發送數據出去,但變頻器那邊沒有數據返回。
這種情況我們懷疑發送出去的數據是不是不對,這個時候考慮使用串口調試助手進行測試。
第四步,使用串口調試助手。
首先我們要了解控制正轉需要給變頻器發送什么數據,這個案例里面發送的數據是
(01 06 32 00 10 01 4B 41)我們從2個方向進行檢查:
電腦連接變頻器,通過一根USB轉485的線(某寶可以買到這樣的線),連接入下圖,然后通過電腦發送(01 06 32 00 10 01 4B 41)這一串數據,看看變頻器能不能啟動正轉。
這個線插入電腦時,在電腦的設備管理器位置會產生一個COM口,我這里顯示的是COM9(假如沒有顯示這個口的話,那么說明電腦沒有安裝驅動,口到百度找一下這個驅動安裝,或者找賣線廠家提供驅動程序,或者電腦下載一個驅動精靈軟件可以解決這個問題),顯示如下圖:
這個時候我打開串口調試助手(類似的工具網上很多,百度一下可以找到,然后下載),界面如下圖
匹配好通訊參數,然后點擊打開窗口,串口的指示燈點亮就可以通訊了
這個時候,我們輸入要發送的數據,點擊,發送。看看變頻器能不能啟動正轉,如下圖
發送多次,變頻器都步能啟動,把線對調一下也不行,一個下午過去了,這個問題沒解決懷疑是線的問題,重新找了一更好的線,變頻器可以動了,這個問題解決了。
假如這個問題換了幾根線還沒搞定,那么我們就可以斷定是變頻器的問題,再一次確認參數無誤的情況下,很大可能是變頻器的通訊端口有問題,需要更換變頻器。或者找變頻器廠家協助
1. 電腦連接plc
我們也可以plc發送數據,然后我們用串口調試助手去測試plc發送過來的數據是不是正常的,連接的過程和第一種方法一樣,然后看一下串口調試助手的接收區接收到的數據是不是我們想要發送的數據。
假如說數據都不發送,那么有可能是BD板壞了。
之前有試過國產的plc,用了幾個都不行,雖然也有發送數據,但發送的數據都不正常,這種情況就需要我們更換plc,購買三菱正版的plc。
以上就是陳老師給大家分享的串口調試助手的使用方法。希望對你有用。
##PLC##自動化##電工交流圈##通訊#