[摘要]:我們本著我們最初的想法,構(gòu)造了目前的可編程控制器和擴(kuò)展系統(tǒng)。在系統(tǒng)中,
網(wǎng)絡(luò)通信尤為重要,我們要在這里仔細(xì)論述騰控PLC的網(wǎng)絡(luò)通信
	
		 
	
		[關(guān)鍵詞]:可編程控制器 網(wǎng)絡(luò)通信
		
			 
		
			
				      我們本著我們最初的想法,構(gòu)造了目前的可編程控制器和擴(kuò)展系統(tǒng)。在系統(tǒng)中,網(wǎng)絡(luò)通信尤為重要,我們要在這里仔細(xì)論述騰控PLC的網(wǎng)絡(luò)通信。
			
				對(duì)于一個(gè)復(fù)雜的系統(tǒng)而言,通信模型非常重要。
				
					 
				
					因?yàn)槲覀冋麄€(gè)網(wǎng)絡(luò)系統(tǒng)是構(gòu)建在TCP/IP網(wǎng)絡(luò)之上的,我們的通信模型實(shí)際就是網(wǎng)絡(luò)通信模型。在系統(tǒng)中,有數(shù)據(jù)的產(chǎn)生者,有數(shù)據(jù)的使用者,有數(shù)據(jù)的存儲(chǔ)者。我們采用的是C/S模型。
					
						 
					
						數(shù)據(jù)的產(chǎn)生者是作為服務(wù)器使用的,數(shù)據(jù)的使用者和存儲(chǔ)者都作為客戶端??紤]到與外部接口,要有開(kāi)放的協(xié)議。所以我們?cè)诳刂破鱾?cè)要支持2種協(xié)議。
						
							 
						
							一種為標(biāo)準(zhǔn)的MODBUS TCP協(xié)議,主要是控制器與上位機(jī)通信,控制器作為服務(wù)器使用。TCP協(xié)議開(kāi)銷比較大。這樣可以提供給客戶一個(gè)標(biāo)準(zhǔn)的接口,幾乎所有的軟件都支持MODBUS協(xié)議和MODBUS TCP協(xié)議。
							
								 
							
								一種是PLC內(nèi)部通信的協(xié)議,我們采用的是UPD協(xié)議,UPD協(xié)議是無(wú)連接的協(xié)議,開(kāi)銷比較小,而且可以支持無(wú)限制的客戶端數(shù)量。這樣可以達(dá)到較高的通信速度。這個(gè)協(xié)議我們稱之為ENET協(xié)議。
								
									 
								
									MODBUS TCP協(xié)議在這里就不用多講了,很多資料。
									
										 
									
										我們把內(nèi)部的通信協(xié)議稱之為ENET協(xié)議,服務(wù)器協(xié)議端口為7000.每個(gè)T9系列都支持ENET的服務(wù)器。而具有運(yùn)算能力的T9系列控制器支持ENET的客戶端,最多同時(shí)可以發(fā)起8個(gè)通信。
										
											 
										
											首先我們定義PLC間內(nèi)部通信,PLC間通信通過(guò)中間變量進(jìn)行,力爭(zhēng)在一個(gè)通信報(bào)文中完成所有的變量交換,我們定義了
											
												 
											
												功能碼1,讀中間變量,
												
													 
												
													功能碼2 , 寫中間變量,
													
														 
													
														功能碼3,讀寫中間變量。
														
															 
														
															對(duì)于遠(yuǎn)程I/O,我們定義了6種功能碼
															
																 
															
																功能碼4 , 讀開(kāi)關(guān)量輸入,
																
																	 
																
																	功能碼5, 讀開(kāi)關(guān)量輸出,
																	
																		 
																	
																		功能碼6, 讀寫開(kāi)關(guān)量輸入輸出
																		
																			 
																		
																			功能碼7, 讀模擬量輸入
																			
																				 
																			
																				功能碼8, 寫模擬量輸出
																				
																					 
																				
																					功能碼9, 讀寫模擬量
																					
																						 
																					
																						具體的報(bào)文,參見(jiàn)文檔
																						
																							 
																						
																							編程方式
																							
																								 
																							
																								為了方便用戶編程,我們抽象了網(wǎng)絡(luò)通信,做到讓用戶編程最為簡(jiǎn)單,定義了ENET通信的功能塊,功能塊如下圖
																								
																									 
																								
																									
																										 
 
																										
																											 
																										
																											 
																										
																											  
																											
																												
																													EN通迅使能端,上升沿有效,激活時(shí)將啟動(dòng)本次通迅,斷開(kāi)時(shí)結(jié)束本次通迅,布爾類型 
																													
																														 
																													
																														IPAddr 要通迅的控制器IP地址,字符串類型 
																														
																															 
																														
																															RW 通迅使用的功能碼,字節(jié)類型,共九種功能碼。 
																															
																																 
																															
																																MRAddr 本機(jī)讀數(shù)據(jù)存放地址,單字類型 
																																
																																	 
																																
																																	YRAddr 遠(yuǎn)程讀數(shù)據(jù)存放地址,單字類型 
																																	
																																		 
																																	
																																		RLength寫操作的數(shù)據(jù)長(zhǎng)度,單字類型 
																																		
																																			 
																																		
																																			MWAddr本機(jī)寫數(shù)據(jù)存放地址,單字類型 
																																			
																																				 
																																			
																																				YWAddr 遠(yuǎn)程寫數(shù)據(jù)存放地址,單字類型 
																																				
																																					 
																																				
																																					WLength寫操作的數(shù)據(jù)長(zhǎng)度,單字類型 
																																					
																																						 
																																					
																																						TimeOut通迅超時(shí)時(shí)間,單字類型(單位:10ms) 
																																						
																																							 
																																						
																																							ENO 輸出使能,布爾類型 
																																							
																																								 
																																							
																																								Done 通迅狀態(tài),布爾類型,True為正常、False     為錯(cuò)誤ErrMsg通迅狀態(tài)碼,0為正常,詳見(jiàn)表(2) 
																																								
																																									 
																																								
																																									編程舉例 
																																									
																																										 
																																									
																																										
																																											 
 
																																											
																																												 
																																											
																																												 
																																											
																																												 
																																											
																																												 
																																											
																																												
																																													只要把這個(gè)功能塊使能,指定服務(wù)器的IP地址,起始地址,讀寫取長(zhǎng)度,本地存儲(chǔ)地址,無(wú)需用戶編程干預(yù),自動(dòng)運(yùn)行。