時(shí)間:2010-04-06 15:35:05來源:zhaofang
在工業(yè)自動(dòng)化發(fā)展的進(jìn)程中,Modbus成為了工業(yè)控制系統(tǒng)中的一種通用協(xié)議。由于該協(xié)議的簡(jiǎn)單且通用,得到眾多儀表廠商的支持,成為儀表及智能終端的一項(xiàng)工業(yè)標(biāo)準(zhǔn),在工業(yè)監(jiān)控系統(tǒng)中得到廣泛的應(yīng)用。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以進(jìn)行通信。它的開放性、可擴(kuò)充性和標(biāo)準(zhǔn)化使不同廠商生產(chǎn)的控制設(shè)備可以簡(jiǎn)單可靠地連成工業(yè)網(wǎng)絡(luò),進(jìn)行系統(tǒng)的集中監(jiān)控,從而成為最流行的協(xié)議之一。同樣,世紀(jì)星組態(tài)軟件也提供支持上位機(jī)和下位設(shè)備進(jìn)行Modbus通信的驅(qū)動(dòng)程序,使用戶可以方便地使用裝有世紀(jì)星軟件的上位機(jī)和下位的設(shè)備進(jìn)行通信。
1、Modbus 設(shè)備選擇
進(jìn)入世紀(jì)星設(shè)備列表PLC大類中的標(biāo)準(zhǔn)Modbus協(xié)議,可以看到我們有5種Modbus設(shè)備,分別是Modbus RTU(十進(jìn)制地址)、Modbus RTU(十六進(jìn)制地址)、Modbus ASCII(十進(jìn)制地址)、Modbus ASCII(十六進(jìn)制地址)以及Modbus TCP/IP(十進(jìn)制地址)。
首先,Modbus的三種通信方式:Modbus RTU、Modbus ASCII以及Modbus TCP/IP世紀(jì)星都全面支持,用戶可以根據(jù)設(shè)備的通訊說明進(jìn)行相應(yīng)的選擇。
其次,Modbus設(shè)備十進(jìn)制和十六進(jìn)制的區(qū)分除了方便一部分用戶的同時(shí),在設(shè)備選擇的方面也給另一部分的用戶造成困擾,針對(duì)這個(gè)問題我會(huì)給大家兩點(diǎn)解釋,第一:同樣的一個(gè)設(shè)備,如果用十進(jìn)制地址的Modbus驅(qū)動(dòng)能連接得上的話,用十六進(jìn)制地址的Modbus驅(qū)動(dòng)肯定也沒問題,確定這點(diǎn)之后,我們提前預(yù)想周全的貼心功能就不會(huì)在選擇設(shè)備時(shí)給您造成困擾了。第二:Modbus協(xié)議已經(jīng)成為工業(yè)控制系統(tǒng)中的一種通用協(xié)議,很多儀表廠商都采用Modbus協(xié)議與上位機(jī)進(jìn)行通信,有些廠商協(xié)議的說明文檔中,采用十進(jìn)制的寄存器地址說明,如表1所示。
而有些廠商采用十六進(jìn)制的寄存器地址說明,如表2所示。為避免用戶在連接變量時(shí)再去做繁瑣的十進(jìn)制和十六進(jìn)制的轉(zhuǎn)化工作,我們將Modbus RTU以及Modbus ASCII分別做成用十進(jìn)制的寄存器地址連接變量的驅(qū)動(dòng)和用十六進(jìn)制的寄存器地址連接變量的驅(qū)動(dòng)。舉個(gè)例子(假定表1表2中列出的寄存器支持03號(hào)功能碼),對(duì)于表1這樣的協(xié)議說明方式,我們可以選擇十進(jìn)制的Modbus驅(qū)動(dòng),用4x10這個(gè)寄存器連接環(huán)境溫度這個(gè)參數(shù);而對(duì)于表2這樣的協(xié)議說明方式,我們可以選擇十六進(jìn)制的Modbus驅(qū)動(dòng),用4 x 000A這個(gè)寄存器連接環(huán)境溫度參數(shù)。
表一
表二
2.寄存器連接
要正確連接一個(gè)寄存器,有三個(gè)關(guān)鍵信息要從協(xié)議說明文檔中獲得:第一是該寄存器支持的功能碼,第二是該寄存器的地址,第三是該寄存器的數(shù)據(jù)類型。
1)功能碼
世紀(jì)星是根據(jù)Modbus協(xié)議中的功能碼來區(qū)別寄存器名稱,具體信息如表3所述:
表三
在廠商所提供的協(xié)議說明文檔中,都會(huì)注明寄存器所支持的功能碼,用戶可以根據(jù)上述表格對(duì)世紀(jì)星里的寄存器進(jìn)行選擇。例如:支持03H功能碼的就選擇4x,支持01H功能碼的就選擇0x。
2)寄存器地址
寄存器地址在協(xié)議說明文檔中都會(huì)比較直觀的列出,參看表1、表2,每個(gè)具體的參數(shù)都會(huì)對(duì)應(yīng)一個(gè)寄存器地址,連接寄存器時(shí)只要將地址號(hào)連接在相應(yīng)的寄存器名后面即可。
3)數(shù)據(jù)類型
位寄存器的連接方式比較單一,如圖1所示。變量類型為I/O離散,數(shù)據(jù)類型為BIT,根據(jù)功能碼選擇寄存器名,并加上寄存器地址就可以正確連接該位寄存器。
圖一
模擬量寄存器的連接方式就比較多樣化,如表4所示(下面對(duì)于寄存器名和寄存器地址暫不進(jìn)行說明)。
表四
表五
主電機(jī)電壓:變量類型選擇I/O整數(shù),數(shù)據(jù)類型選擇LONG(有符號(hào)32位整數(shù));
主電機(jī)電流:變量類型選擇I/O實(shí)數(shù),數(shù)據(jù)類型選擇FLOAT(我們的浮點(diǎn)數(shù)格式符合IEEE754標(biāo)準(zhǔn));
環(huán)境溫度:變量類型選擇I/O整數(shù),數(shù)據(jù)類型選擇UINT(無符號(hào)16位整數(shù));
T1:變量類型選擇I/O整數(shù),數(shù)據(jù)類型選擇INT(有符號(hào)16為整數(shù));
T2:變量類型選擇I/O整數(shù),數(shù)據(jù)類型選擇BCD(16位BCD碼);
T3:變量類型選擇I/O實(shí)數(shù),數(shù)據(jù)類型為UINT或者INT,由于傳送數(shù)據(jù)是實(shí)際值的100倍,所以在定義變量時(shí)需要做一個(gè)線性變換,如圖2所示,使最大值[IO]為最大值的100倍,最小值[IO]是最小值的100倍,并在轉(zhuǎn)換選項(xiàng)中選擇線性轉(zhuǎn)換就可以在工程中直接顯示實(shí)際值;
圖二
STATUS:變量類型選擇I/O整數(shù),數(shù)據(jù)類型選擇UINT,需要在工程中對(duì)STATUS中的某個(gè)位進(jìn)行顯示和設(shè)置時(shí),要使用世紀(jì)星中的Bit(Tagname,BitNo)和BitSet(“Tagname”,BitNo,Discrete_Value)這兩個(gè)函數(shù),具體的使用方式可以參考世紀(jì)星中的函數(shù)說明。
今天給大家介紹了如何選擇Modbus設(shè)備以及如何連接寄存器,對(duì)于標(biāo)準(zhǔn)的Modbus協(xié)議來說,掌握這些已經(jīng)可以從設(shè)備中讀出一個(gè)正確的數(shù)據(jù),但有些廠家的Modbus協(xié)議在字節(jié)順序以及功能碼的使用方面和標(biāo)準(zhǔn)Modbus協(xié)議,是有一些小的出入,針對(duì)這種情況,我們的Modbus驅(qū)動(dòng)也做了相應(yīng)的調(diào)整,通過設(shè)置初始化字解決這個(gè)問題,其具體的設(shè)置方式我將會(huì)在下一篇介紹給大家,感謝您的關(guān)注!
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專題
更多>