德國赫優(yōu)訊netIC 現(xiàn)場總線模塊在貝爾利產(chǎn)品中的應(yīng)用———德國赫優(yōu)訊netIC 現(xiàn)場總線模塊在貝爾利產(chǎn)品中的應(yīng)用
1 引言
貝爾利科技有限公司是一家從事科研開發(fā)和工程技術(shù)服務(wù)的高新技術(shù)企業(yè),主營業(yè)務(wù)為機(jī)電產(chǎn)品制造、生產(chǎn)過程自動(dòng)化、電氣自動(dòng)化、管理信息化等方面的系統(tǒng)集成、軟件開發(fā)、工程設(shè)計(jì)、技術(shù)服務(wù)等,“貝爾利科技”憑借強(qiáng)大的技術(shù)隊(duì)伍以及科學(xué)的管理和一系列綜合系統(tǒng)集成項(xiàng)目的豐富經(jīng)驗(yàn),逐漸成長為實(shí)力雄厚的自動(dòng)化系統(tǒng)的集成商。貝爾利科技以其豐富的運(yùn)動(dòng)定位控制系統(tǒng)和部件產(chǎn)品線,為客戶提供了前所未有的解決方案甄選機(jī)會(huì),以滿足其特定的應(yīng)用需求。其一款控制器已經(jīng)分別集成了德國赫優(yōu)訊netIC 系列CC-LINK 從站接口模塊、PROFIBUS 從站接口模塊及Device-Net 從站接口模塊,并將集成其他現(xiàn)場總線及PROFINET、Ethernet/IP 等實(shí)時(shí)以太網(wǎng)協(xié)議的模塊,因此能根據(jù)客戶使用的PLC 提供的通訊接口,提供相應(yīng)接口的產(chǎn)品。
2 德國赫優(yōu)訊netIC 模塊簡介
德國赫優(yōu)訊netIC 嵌入式模塊作為完整的單片模塊,包括:NIC 50-RE(實(shí)時(shí)以太網(wǎng)從站接口模塊,支持各種實(shí)時(shí)以太網(wǎng)協(xié)議,包括:PROFINET、EtherCAT、Ethernet/IP、Modbus/TCP、POWERLINK、SERCOS III 等)、NIC 50-DPS(PPROFIBUS 從站接口模塊)、NIC 50-DNS(DeviceNet 從站接口模塊)、NIC 50-COS(CANopen 從站接口模塊)、NIC 50-CCS(CCLINK從站接口模塊)、NIC 50-CPS(CompoNet 從站接口模塊)等型號,所有型號都采用統(tǒng)一的32 針DIL 封裝,尺寸緊湊,片上集成了現(xiàn)場總線與實(shí)時(shí)以太網(wǎng)通訊接口所需要的所有元件。同時(shí)還提供了netX Configuration Tool 配置軟件和配套的評估板,方便用戶進(jìn)行產(chǎn)品開發(fā)。圖1 為NIC50-CCS 模塊的實(shí)物圖。
圖1 NIC 50-CCS 模塊
3 硬件開發(fā)
netIC 模塊提供了32 針管腳,支持UART 接口通過Modbus RTU 協(xié)議集成入用戶的主機(jī)系統(tǒng),未來還將擴(kuò)展SPI 及I2C 接口。因?yàn)槟K本身已經(jīng)提供了同步串行接口,如果作為簡單的IO設(shè)備,可以不需要額外的主CPU。本例中使用了C8051F 系列混合信號ISP FLASH 微控制器作為主CPU,其基于高速、流水線結(jié)構(gòu)的8051 兼容CIP-51 內(nèi)核,并提供了2 路UART 接口及其他豐富外設(shè),因此可以在軟件上實(shí)現(xiàn)Modbus RTU 協(xié)議與netIC 模塊通訊。
圖2 為NIC 50-CCS 模塊的管腳圖,與其他型號模塊唯一的區(qū)別只是在協(xié)議通訊接口的管腳,因此對于用戶更換成其他模塊非常方便。其中,29、30、31 管腳為串行主機(jī)接口, 可以與主CPU的UART 口直接連接,也可以通過RS485 芯片進(jìn)行連接;13、14 管腳為CC-LINK 總線接口;27、28 管腳為診斷接口,連接PC,進(jìn)行產(chǎn)品配置;3、4、5、6、7 管腳為串行移位寄存器接口,用于連接外部開關(guān)量或模擬量信號。
圖2 NIC 50-CCS 管腳圖
因此netIC 模塊的硬件開發(fā)非常方便,開發(fā)示意圖如圖3 所示:
圖3 硬件開發(fā)示意圖
硬件開發(fā)的電路原理圖如圖4 所示:
同時(shí),用戶還可以增加診斷接口,數(shù)字量模擬量輸入輸出接口,狀態(tài)顯示LED 燈等外圍電路。
4 軟件開發(fā)
4.1 netIC 模塊配置
netIC 模塊本身的使用不需要任何程序上的開發(fā),只需要使用提供的配置軟件和評估板配置Modbus 及CC-LINK 協(xié)議參數(shù),再下載協(xié)議堆棧(Firmware)和配置文件。所有信息均保存在netIC 模塊中的寄存器區(qū)域,該寄存器區(qū)域的結(jié)構(gòu)如圖5 所示,例如,現(xiàn)場總線主站發(fā)送至netIC 模塊的數(shù)據(jù)保存在從1000 開始的寄存器區(qū)域;netIC 模塊發(fā)送至現(xiàn)場總線主站的數(shù)據(jù)保存在從2000開始的寄存器區(qū)域。
同時(shí),主CPU 也可以通過Modbus RTU 直接訪問所有寄存器區(qū)域,并通過Modbus 修改Modbus 本身的波特率及總線協(xié)議的所有參數(shù),如波特率、站地址、輸入輸出字節(jié)等。
圖5 寄存器區(qū)域結(jié)構(gòu)
4.2 netIC 模塊與主CPU 通訊
netIC 模塊與C8051F MCU 的通訊方式為Modbus RTU,因此需要在MCU 的用戶程序中實(shí)現(xiàn)Modbus RTU 的讀寫功能。netIC 模塊可以作為Modbus 通訊的主站或從站,因此MCU 的UART 口作為從站或主站。在用戶程序中,通過Modbus 命令碼3 讀取netIC 模塊接收到的總線數(shù)據(jù),通過Modbus 命令碼16 寫數(shù)據(jù)到netIC 模塊,模塊會(huì)自動(dòng)將數(shù)據(jù)打包成協(xié)議數(shù)據(jù)幀發(fā)送至總線上。
寫寄存器命令代碼如下:
void UART0_send(cha r *cdata,cha r n)
{
cha r i,*pt;
pt = cdata; //首地址放到指針中
EA = 1; //開cpu 中斷
REN0 = 0;
ES0 = 0; //關(guān)閉串行口中斷
Rs485_Tx_Enable = 1; //485 在發(fā)送狀態(tài)
TI0 = 0; //清中發(fā)送斷標(biāo)志位
for(i=0;i<n;i++)
{
SBUF0 = *pt; //啟動(dòng)發(fā)送過程
while(TI0==0); //等待發(fā)送結(jié)束
TI0 = 0; //發(fā)送結(jié)束后將中斷標(biāo)志清零
pt++; //指向下一個(gè)要發(fā)送的地址
}
TI0 = 0;
Rs485_Tx_Enable = 0; //置485 在接受狀態(tài)
ES0 = 1; //打開串行口中斷
data_transfer = 0;
REN0 = 1;
}
讀寄存器命令代碼如下:
void UART0_receive(void)
{
unsigned cha r temp_receive;
temp_receive = SBUF0;
if(start==1 && end==0)
{
TestDataBuffer[byte_num]=temp_receive;
byte_num++;
}
else if(1==overtime && 0==byte_num && start==0 && end==1)
{
LocalAddress=temp_receive;
TestDataBuffer[byte_num]=LocalAddress;
if(LocalAddress==0x02)
{
byte_num=1;
start=1;
end=0;
}
}
}
5 小結(jié)
基于NIC 50-CCS 模塊設(shè)計(jì)的貝爾利控制器產(chǎn)品,目前已在現(xiàn)場成功投入運(yùn)行,并且通訊質(zhì)量穩(wěn)定可靠,效果良好。德國赫優(yōu)訊的netIC 產(chǎn)品系列軟硬件開發(fā)簡單,并且具有統(tǒng)一的32 針DIL封裝形式,為用戶提供了一種很好的開發(fā)現(xiàn)場總線或?qū)崟r(shí)以太網(wǎng)從站設(shè)備的解決方案。
參考文獻(xiàn)
[1] netIC_usermanual_designguide_en. Hilscher Gesellschaft für Systemautomation mbH. 2009.
[2] C8051F02x user guide. Silicon Laboratories Inc. 2003.
[3] C8051F02X DEVELOPMENT KIT USER’S GUIDE Silicon Laboratories Inc. 2006.