1 OEM嵌入式通訊模塊介紹
OEM嵌入式通訊模塊是一款適用于工業以太網和現場總線協議的嵌入式IC模塊,利用該模塊可快速又輕松地把您的設備集成到工業網路中,目前該系列模塊有支持PROFINET、EtherNet/IP、EtherCAT、Modbus TCP、CANopen、Profibus、DeviceNet、CC-Link等實時通信協議,OEM模塊對用戶開放了2種串行介面,包括USART介面(標準Modbus RTU協議)和SPI介面,與主控MCU應用程式交換實時網路資料,從而將您的設備集成到相應的網路而無需大量的開發作業,另外該模塊還具備32個引腳的IO信號,可以滿足32個點的數字量IO設計,這32個IO引腳可以任意設定成DI或DO,
2 案例說明
本案例以OEM模塊標準評估板(主控芯片STM32F103VCT6)結合集成PROFINET從站通訊協議的OEM通訊模塊,及西門子S7-1200 PLC作為PROFINET主站為例,進行關于PROFINET通訊模塊的通訊測驗,

準備作業
① OEM模塊標準評估板

功能說明:
1. 開發板上X1端子,直流24V供電,,
2. 本開發板支持2種串行介面,包括USART介面和SPI介面,
3. 本開發板具備32個引腳的IO信號,可以滿足32個點的數字量IO設計,
4. 本開發板對外提供一路RS232信號,用于列印資訊,
5. 本開發板主芯片使用STM32F103VCT6,開發例程基于此型號芯片撰寫,
6. JP2插針是開發板主芯片的程式燒寫口,
7. 撥動開關S1:撥到ON時,開發板供電;撥到OFF時,開發板斷電,撥動開關S2始終處于OFF狀態,
② 目標系統

西門子PLC S7-1200作為PROFINET主站,PROFINET通訊模塊插在標準評估板上作為從站,通過網線連接兩個設備進行通訊,評估板上的RS232埠與電腦連接,用Modbus Slave軟體查看接收到的來自PROFINET網路中資料,或者向開發板發送資料從而發送給PLC,
3 通訊測驗
OEM嵌入式通訊模塊的通訊測驗實際上包括兩個部分:PLC主站與OEM模塊之間的通訊,以及OEM模塊與評估板之間通過USART(Modbus RTU)或者SPI的資料互動,本示例以USART通訊為例說明,
3.1 基本配置
1) OEM 模塊 J1~J3 全部斷開,開發板撥碼 1~8 全部 OFF;
2) 使用交換機將西門子PLC、開發板、電腦連到一起,PLC 程式下載到 PLC;
3) 使用RS232 連接線,將電腦與開發板的 DB1 埠連接;
4) 電腦打開Modbus Slave 軟體,建立連接,
3.2 OEM模塊與PLC通訊
① 匯入對應PROFINET通訊模塊的gsd檔案到博圖軟體中,便于之后網路組態與設備配置使用

② 選擇-->添加新設備-->找到并添加所使用的PLC型號,這里以S7-1200為例

③ 找到所匯入的GSD檔案對應的設備,并添加到設備組態中,并連接PLC與通訊模塊

④ 配置PLC的IP地址與設備名稱(這里使用“自動生成PROFINET設備名稱”)

⑤ 配置OEM模塊的IP地址與設備名稱,這里使用默認的GSD檔案中sast名稱,也可以對設備額外設定其他名稱,但需注意與網路組態中的一致,否者無法找到設備,

⑥ 在設備視圖中添加輸入輸出模塊,這里分別添加32 bytes input和32 bytes outputs為例

⑦ 選擇“編譯”,檢查是否有報錯:

⑧ 選擇“下載”,在出現的視窗中分配對應的子網,點擊“開始搜索”找到可訪問的設備,并“下載”

⑨ “裝載”配置

⑩ 選擇“轉至在線”可監控網路狀態,所添加設備后顯示綠色對勾代表通訊狀態正常,

3.3 OEM模塊與評估板通訊
① 狀態機
無論使用USART還是SPI,OEM模塊都做為主站運行,遵循下面的狀態機:

② 資料區定義
根據功能的不同,OEM模塊用到的資料區劃分為5個區域,分別是:通訊資訊區、下發資料區、下發引數區、設備資訊區、上傳資料區,OEM模塊在“S1 握手”階段讀取設備資訊區的資料,由于PROFINET模塊目前未使用此區域的內容,所以用戶僅需要正確回復報文即可,OEM模塊忽略資料值的內容,
下發資料區(4xxxx區- 10H功能碼)(最大1000位元組)

上傳資料區(3xxxx區- 04H功能碼)(最大1000位元組)

③ USART通訊
1) USART介面波特率支持:9.6Kbps、19.2Kbps、38.4Kbps、57.6Kbps、115.2Kbps、230.4Kbps、460.8Kbps,
2) OEM模塊上電后,在S1握手階段,通過握手報文,OEM模塊可以自動適應用戶的波特率,用戶使用的波特率需要在以上7種波特率之中,
3) USART介面資料幀格式:8 個資料位、偶校驗、1 個停止位,
4) USART使用標準MODBUS協議,
5) OEM模塊做為USART通訊主站,用戶做為USART通訊從站,
6) 用戶串口的處理機制:用戶做為標準的MODBUS從站,只需要在收到OEM模塊的報文命令后,按照相應命令回復報文即可,
7) 通訊報文約定
A. 下發資料
板卡發送:
![]()
用戶應答:

B. 上傳資料
板卡發送:

用戶應答:
![]()
④ Modbus程式示例:
//*******************Modbus資料接收********************//
int user_modbus_deal_rev(void)
{
unsigned int i , tem_start_adr , tem_num ;
unsigned int tem_crc ;
unsigned char tem_hi , tem_lo ;
tem_crc = modbus_crc( URXDBuf , UART_rev_num-2 );
tem_lo = tem_crc & 0xff ;
tem_hi = (tem_crc>>8) & 0xff ;
//**CRC校驗
if( ( URXDBuf[UART_rev_num-2]==tem_hi ) && ( URXDBuf[UART_rev_num-1]==tem_lo ) )
{
if( URXDBuf[1] == 0x10 ) //功能碼10H
{
tem_start_adr = ( URXDBuf[2] << 8 ) + URXDBuf[3] ;
tem_start_adr = tem_start_adr << 1 ;
tem_num = URXDBuf[6] ;
for( i=0 ; i<tem_num ; i++ )
{
modbus_4_data[ tem_start_adr+i ] = URXDBuf[7+i] ;
}
}
user_modbus_deal_txd();
}
return 1 ;
}
//*******************Modbus資料發送********************//
int user_modbus_deal_txd(void)
{
unsigned int tem , i ;
unsigned int function_code , tem_start_adr , tem_num1 , tem_num2 ;
function_code = URXDBuf[1] ;
// 04H
if( function_code == 0x04 )
{
tem_start_adr = ( URXDBuf[2] << 8 ) + URXDBuf[3] ;
tem_start_adr = tem_start_adr << 1 ; ?
tem_num1 = ( URXDBuf[4] << 8 ) + URXDBuf[5] ;
tem_num2 = tem_num1 << 1 ;
for( i=0 ; i<tem_num2 ; i++ )
{
modbus_3_data[ tem_start_adr+i ] = modbus_3_data[ tem_start_adr+i ] + 1 ;
UTXDBuf[3+i] = modbus_3_data[ tem_start_adr+i ] ;
}
UTXDBuf[0] = modbus_adr ;
UTXDBuf[1] = 0x04 ;
UTXDBuf[2] = tem_num2 ;
tem = modbus_crc( UTXDBuf , tem_num2+3 );
UTXDBuf[tem_num2+3] = tem >> 8 ;
UTXDBuf[tem_num2+4] = tem ;
UART_trx_num = tem_num2+5 ;
}
// 10H
else if( function_code == 0x10 )
{
for( i=0 ; i<6 ; i++ )
{
UTXDBuf[i] = URXDBuf[i] ;
}
tem = modbus_crc( UTXDBuf , 6 );
UTXDBuf[6] = tem >> 8 ;
UTXDBuf[7] = tem ;
UART_trx_num = 8 ;
}
UART_trx_ctr = 0 ;
UART_rev_ctr = 0 ;
Modbus_TR_State = TR_TURE ;
for( i=0 ; i<10 ; i++ )
USART_SendData( RTU_USART , UTXDBuf[0] );
monitor_print(UTXDBuf[0]);
return 1 ;
}
④ 資料互動模型

3.4 資料互動測驗
在“PLC變數”中添加需要在線監視或修改的變數,在“監控與強制表”中添加監控表,并添加對應的變數,可進行變數的監測,另外,這里可以通過Modbus Slave軟體監測從站開發板的收發資料,在博途和Modbus Slave可以分別查看相應的收發資料,PROFINET模塊通訊正常,并完成PROFINET資料互動,(注意OEM嵌入式通訊模塊資料區Modbus暫存器地址從0x100開始)

關于虹科工業通訊:
虹科是一家在工業自動化領域,特別是工業總線通訊行業經驗超過10年的高科技公司,虹科工業通訊事業部與世界知名的工業通訊專家【PEAK-System,Hilscher,Kunbus,SYS TEC,Koenig-Pa,Port,Copa-data,TenAsys,SoC-e、RELYUM】等深度合作,提供業內頂尖水平的工業總線協議軟硬體解決方案,協議型別包含【CAN、CANopen、EtherCAT、Profibus、Profinet、EtherNET/IP、TSN】等,產品型別包含代碼、軟體、芯片、板卡、模塊等,虹科工業通訊以客戶需求為導向,以技術能力為基礎,為國內企業提供最適合的產品和最滿意的服務,特別是在工業4.0的大環境下,虹科工業通訊與時俱進,推出了TSN(時間敏感網路)的解決方案,后者將在推動萬物互聯的潮流中扮演著如高速公路般的連接作用,
微信掃一掃,關注我們獲取更多工業通訊干貨~
點擊鏈接,關注我們的實時動態:www.hongconsys.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229943.html
標籤:其他
上一篇:網路連接與增大

