OEM嵌入式通訊模塊與西門子PLC S7-1200通訊測試指南
一、OEM嵌入式通訊模塊介紹
OEM嵌入式通訊模塊是一款適用于工業以太網和現場總線協議的嵌入式IC模塊,利用該模塊可快速又輕松地把您的設備集成到工業網絡中。目前該系列模塊有支持PROFINET、EtherNet/IP、EtherCAT、Modbus TCP等實時通信協議。OEM模塊對用戶開放了2種串行接口,包括USART接口(標準Modbus RTU協議)和SPI接口,與主控MCU應用程序交換實時網絡數據,從而將您的設備集成到相應的網絡而無需大量的開發工作。另外該模塊還具備32個引腳的IO信號,可以滿足32個點的數字量IO設計,這32個IO引腳可以任意設置成DI或DO。
二、 案例說明
本案例以OEM模塊標準評估板(主控芯片STM32F103VCT6)結合集成PROFINET從站通訊協議的OEM通訊模塊,及西門子S7-1200 PLC作為PROFINET主站為例,進行關于PROFINET通訊模塊的通訊測試。
2.1 準備工作
① OEM模塊標準評估板
功能說明:
- 開發板上X1端子,直流24V供電。。
- 本開發板支持2種串行接口,包括USART接口和SPI接口。
- 本開發板具備32個引腳的IO信號,可以滿足32個點的數字量IO設計。
- 本開發板對外提供一路RS232信號,用于打印信息。
- 本開發板主芯片使用STM32F103VCT6,開發例程基于此型號芯片編寫。
- JP2插針是開發板主芯片的程序燒寫口。
- 撥動開關S1:撥到ON時,開發板供電;撥到OFF時,開發板斷電。撥動開關S2始終處于OFF狀態。
② 目標系統
西門子PLC S7-1200作為PROFINET主站,PROFINET通訊模塊插在標準評估板上作為從站,通過網線連接兩個設備進行通訊。評估板上的RS232端口與電腦連接,用Modbus Slave軟件查看接收到的來自PROFINET網絡中數據,或者向開發板發送數據從而發送給PLC。
三、通訊測試
OEM嵌入式通訊模塊的通訊測試實際上包括兩個部分:PLC主站與OEM模塊之間的通訊,以及OEM模塊與評估板之間通過USART(Modbus RTU)或者SPI的數據交互,本示例以USART通訊為例說明。
3.1 基本配置
1) OEM 模塊 J1J3 全部斷開,開發板撥碼 18 全部 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文件中HI-TOP名稱,也可以對設備額外設置其他名稱,但需注意與網絡組態中的一致,否者無法找到設備。
⑥ 在設備視圖中添加輸入輸出模塊,這里分別添加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通訊
· USART接口波特率支持:9.6Kbps、12Kbps、38.4Kbps、57.6Kbps、115.2Kbps、230.4Kbps、460.8Kbps。
· OEM模塊上電后,在S1握手階段,通過握手報文,OEM模塊可以自動適應用戶的波特率。用戶使用的波特率需要在以上7種波特率之中。
· USART接口數據幀格式:8 個數據位、偶校驗、1 個停止位。
· USART使用標準MODBUS協議。
· OEM模塊做為USART通訊主站,用戶做為USART通訊從站。
· 用戶串口的處理機制:用戶做為標準的MODBUS從站,只需要在收到OEM模塊的報文命令后,按照相應命令回復報文即可。
· 通訊報文約定
A.下發數據
板卡發送:
用戶應答:
B.上傳數據
板卡發送:
用戶應答:
④ Modbus程序示例:
//Modbus數據接收//
intuser_modbus_deal_rev ( void )
{
unsignedint i , tem_start_adr , tem_num ;
unsignedint tem_crc ;
unsignedchar 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
{
modbus_4_data[ tem_start_adr+i ] = URXDBuf[7+i] ;
}
}
user_modbus_deal_txd();
}
return 1 ;
}
//Modbus數據發送//
intuser_modbus_deal_txd ( void )
{
unsignedint tem , i ;
unsignedintfunction_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
{
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
elseif ( 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]);
return1 ;
}
④ 數據交互模型
3.4 數據交互測試
在“PLC變量”中添加需要在線監視或修改的變量,在“監控與強制表”中添加監控表,并添加對應的變量,可進行變量的監測。另外,這里可以通過Modbus Slave軟件監測從站開發板的收發數據。在博途和Modbus Slave可以分別查看相應的收發數據,PROFINET模塊通訊正常,并完成PROFINET數據交互。(注意OEM嵌入式通訊模塊數據區Modbus寄存器地址從0x100開始)
審核編輯 黃宇
-
嵌入式
+關注
關注
5138文章
19524瀏覽量
314705 -
plc
+關注
關注
5029文章
13700瀏覽量
471985 -
OEM
+關注
關注
4文章
407瀏覽量
51294 -
西門子
+關注
關注
98文章
3129瀏覽量
117718
發布評論請先 登錄
Profinet轉EtherCAT深度解讀網關模塊如何協議轉換賦能西門子PLC與伺服驅動高效協作案例?

如何選擇適合的西門子S7-1200系列PLC型號?

借助 Profibus DP 轉 ProfiNet 網關,實現稱重儀表與西門子 1200 PLC 通訊的應用范例

Profinet 轉 EtherNet/IP 網關怎樣化解西門子 S7 - 1500 PLC 與 AB PLC 之間的通訊難題

基于 EtherCAT 轉 ProfiNet 網關達成西門子 1200 PLC 與伺服電機通訊連接的應用實例

西門子1200、200smart、LOGO實現S7通訊演示

評論