1 引言
貝爾利科技有限公司是一家從事科研開(kāi)發(fā)和工程技術(shù)服務(wù)的高新技術(shù)企業(yè),主營(yíng)業(yè)務(wù)為機(jī)電產(chǎn)品制造、生產(chǎn)過(guò)程自動(dòng)化、電氣自動(dòng)化、管理信息化等方面的系統(tǒng)集成、軟件開(kāi)發(fā)、工程設(shè)計(jì)、技術(shù)服務(wù)等, “貝爾利科技 ”憑借強(qiáng)大的技術(shù)隊(duì)伍以及科學(xué)的管理和一系列綜合系統(tǒng)集成項(xiàng)目的豐富經(jīng)驗(yàn),逐漸成長(zhǎng)為實(shí)力雄厚的自動(dòng)化系統(tǒng)的集成商。貝爾利科技以其豐富的運(yùn)動(dòng)定位控制系統(tǒng)和部件產(chǎn)品線,為客戶提供了前所未有的解決方案甄選機(jī)會(huì),以滿足其特定的應(yīng)用需求。其一款控制器已經(jīng)分別集成了德國(guó)赫優(yōu)訊 netIC系列 CC-LINK從站接口模塊、 PROFIBUS從站接口模塊及 Device-Net從站接口模塊,并將集成其他現(xiàn)場(chǎng)總線及 PROFINET、Ethernet/IP等實(shí)時(shí)以太網(wǎng)協(xié)議的模塊,因此能根據(jù)客戶使用的 PLC提供的通訊接口,提供相應(yīng)接口的產(chǎn)品。 2 德國(guó)赫優(yōu)訊 netIC模塊簡(jiǎn)介
德國(guó)赫優(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從站接口模塊)等型號(hào),所有型號(hào)都采用統(tǒng)一的32針DIL封裝,尺寸緊湊,片上集成了現(xiàn)場(chǎng)總線與實(shí)時(shí)以太網(wǎng)通訊接口所需要的所有元件。同時(shí)還提供了 netX Configuration Tool配置軟件和配套的評(píng)估板,方便用戶進(jìn)行產(chǎn)品開(kāi)發(fā)。圖1為NIC50-CCS模塊的實(shí)物圖。

圖 1 NIC 50-CCS模塊
3 硬件開(kāi)發(fā)
netIC模塊提供了32針管腳,支持 UART接口通過(guò) Modbus RTU 協(xié)議集成入用戶的主機(jī)系統(tǒng),未來(lái)還將擴(kuò)展SPI及I2C接口。因?yàn)槟K本身已經(jīng)提供了同步串行接口,如果作為簡(jiǎn)單的IO設(shè)備,可以不需要額外的主CPU。本例中使用了C8051F系列混合信號(hào)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模塊的管腳圖,與其他型號(hào)模塊唯一的區(qū)別只是在協(xié)議通訊接口的管腳,因此對(duì)于用戶更換成其他模塊非常方便。其中,29、30、31管腳為串行主機(jī)接口,可以與主CPU的UART口直接連接,也可以通過(guò)RS485芯片進(jìn)行連接;13、14管腳為CC-LINK總線接口;27、28管腳為診斷接口,連接PC,進(jìn)行產(chǎn)品配置;3、4、5、6、7管腳為串行移位寄存器接口,用于連接外部開(kāi)關(guān)量或模擬量信號(hào)。

圖 2 NIC 50-CCS管腳圖
因此 netIC模塊的硬件開(kāi)發(fā)非常方便,開(kāi)發(fā)示意圖如圖3所示:

圖 3 硬件開(kāi)發(fā)示意圖
硬件開(kāi)發(fā)的電路原理圖如圖4所示:

同時(shí),用戶還可以增加診斷接口,數(shù)字量模擬量輸入輸出接口,狀態(tài)顯示LED燈等外圍電路。
4 軟件開(kāi)發(fā)
4.1 netIC模塊配置
netIC模塊本身的使用不需要任何程序上的開(kāi)發(fā),只需要使用提供的配置軟件和評(píng)估板配置Modbus及CC-LINK協(xié)議參數(shù),再下載協(xié)議堆棧(Firmware)和配置文件。所有信息均保存在netIC模塊中的寄存器區(qū)域,該寄存器區(qū)域的結(jié)構(gòu)如圖5所示,例如,現(xiàn)場(chǎng)總線主站發(fā)送至netIC模塊的數(shù)據(jù)保存在從1000開(kāi)始的寄存器區(qū)域;netIC模塊發(fā)送至現(xiàn)場(chǎng)總線主站的數(shù)據(jù)保存在從2000開(kāi)始的寄存器區(qū)域。同時(shí),主CPU也可以通過(guò)Modbus RTU直接訪問(wèn)所有寄存器區(qū)域,并通過(guò)Modbus修改Modbus本身的波特率及總線協(xié)議的所有參數(shù),如波特率、站地址、輸入輸出字節(jié)等。

4.2 netIC模塊與主
CPU通訊 netIC模塊與C8051F MCU的通訊方式為Modbus RTU,因此需要在MCU的用戶程序中實(shí)現(xiàn)Modbus RTU的讀寫(xiě)功能。netIC模塊可以作為Modbus通訊的主站或從站,因此MCU的UART口作為從站或主站。在用戶程序中,通過(guò)Modbus命令碼3讀取netIC模塊接收到的總線數(shù)據(jù),通過(guò)Modbus命令碼16寫(xiě)數(shù)據(jù)到netIC模塊,模塊會(huì)自動(dòng)將數(shù)據(jù)打包成協(xié)議數(shù)據(jù)幀發(fā)送至總線上。
寫(xiě)寄存器命令代碼如下:
void UART0_send(char *cdata,char n)
{
char i,*pt;
pt = cdata; //首地址放到指針中
EA = 1; //開(kāi)
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ā)送過(guò)程
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; //打開(kāi)串行口中斷
data_transfer = 0;
REN0 = 1;
}
讀寄存器命令代碼如下:
void UART0_receive(void)
{
unsigned char 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)場(chǎng)成功投入運(yùn)行,并且通訊質(zhì)量穩(wěn)定可靠,效果良好。德國(guó)赫優(yōu)訊的netIC產(chǎn)品系列軟硬件開(kāi)發(fā)簡(jiǎn)單,并且具有統(tǒng)一的32針DIL封裝形式,為用戶提供了一種很好的開(kāi)發(fā)現(xiàn)場(chǎng)總線或?qū)崟r(shí)以太網(wǎng)從站設(shè)備的解決方案。
