国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法

      文檔序號(hào):6329446閱讀:343來源:國(guó)知局
      專利名稱:一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法。
      技術(shù)背景
      上位機(jī)軟件WinCC和可編程序控制器廣泛運(yùn)用于工業(yè)控制領(lǐng)域。雖然可編程序控制器的數(shù)據(jù)存儲(chǔ)周期可達(dá)1ms,但WinCC的最短數(shù)據(jù)歸檔周期卻為500ms,對(duì)于需要高速采集的數(shù)據(jù),WinCC無(wú)法滿足要求。目前,解決此問題的方法主要是選用更高檔次的可編程序控制器,或是編寫?yīng)毩⒌臄?shù)據(jù)處理軟件,導(dǎo)致成本提高,開發(fā)復(fù)雜。發(fā)明內(nèi)容
      本發(fā)明的所要解決的技術(shù)問題是提供一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,該可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法采用最簡(jiǎn)便的方法低成本地實(shí)現(xiàn)高速通信。
      為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案為
      一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,在可編程序控制器中,將現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)每隔時(shí)間Tl存放于可編程序控制器的數(shù)據(jù)塊中,通過工業(yè)現(xiàn)場(chǎng)總線將該存放的現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至上位機(jī);
      其中Tl小于可編程序控制器與上位機(jī)之間的默認(rèn)數(shù)據(jù)通訊周期;
      在上位機(jī)端,對(duì)接收到的數(shù)據(jù)包進(jìn)行解包,并將解包后的數(shù)據(jù)進(jìn)行處理;完成可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊。
      在可編程序控制器中,采用定時(shí)中斷方式對(duì)現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)進(jìn)行存儲(chǔ)。
      所述的處理為存儲(chǔ),或者直接將解包后的數(shù)據(jù)進(jìn)行顯示、繪圖或查詢。
      所述的數(shù)據(jù)包的形成過程即數(shù)據(jù)打包過程為在數(shù)據(jù)塊中建立長(zhǎng)度為2N字節(jié)的整型數(shù)組變量,其中前2N-2個(gè)字節(jié)用來存儲(chǔ)實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)即整形數(shù)據(jù),最后兩個(gè)字節(jié)用來存儲(chǔ)最新存入數(shù)據(jù)的位置編號(hào);每一次數(shù)據(jù)存儲(chǔ)時(shí),更新位置編號(hào)和實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù),N為建立的數(shù)據(jù)塊所能存放整型數(shù)據(jù)的個(gè)數(shù)。
      數(shù)據(jù)包進(jìn)行解包即數(shù)據(jù)解包的過程為在上位機(jī)軟件中定義一種原始數(shù)據(jù)變量, 將其地址和大小設(shè)置成與可編程序控制器里的數(shù)據(jù)塊相一致,再建立一個(gè)總長(zhǎng)度為2N字節(jié)的整型變量數(shù)組;在上位機(jī)軟件中設(shè)置全局腳本的觸發(fā)周期為T2,將可編程控制器中的數(shù)據(jù)塊采集到上位機(jī)中,將獲取的數(shù)據(jù)賦給所述的整形變量數(shù)組。
      所述的上位機(jī)軟件為WinCC軟件,WinCC軟件通過調(diào)用系統(tǒng)支持的GetTagRaw函數(shù),將可編程控制器中的數(shù)據(jù)塊采集到WinCC中,并把GetTagRaw函數(shù)的返回值即解包后的數(shù)據(jù)賦給建立好的變量數(shù)組;且Tl = M*T2 ;M為T2時(shí)間的采樣次數(shù);M和N滿足關(guān)系式M < N-I。
      WinCC以原始數(shù)據(jù)變量的形式一次從可編程序控制器采集一批數(shù)據(jù),這樣就獲取了完整的高速數(shù)據(jù),間接地實(shí)現(xiàn)了高速通信。
      在WinCC全局腳本中,數(shù)據(jù)解包后通過比較本次位置編號(hào)變量值A(chǔ)和上次數(shù)據(jù)解包得到的并已存在上位機(jī)中的位置編號(hào)變量值B,得出兩次采集時(shí)間間隔內(nèi)的有效數(shù)據(jù)的位置區(qū)間;如果A大于B,則在上位機(jī)中只存儲(chǔ)解包后數(shù)組中第B到第A個(gè)數(shù)據(jù),如果A小于B,則在上位機(jī)中只存儲(chǔ)第B到N-I個(gè)、第1到第A個(gè)數(shù)據(jù);建立文本文檔數(shù)據(jù)文件,根據(jù)系統(tǒng)日期以年月日的格式命名文件,數(shù)據(jù)每次存儲(chǔ)都按“當(dāng)前時(shí)間一時(shí)分秒毫秒/ 換行/第一個(gè)數(shù)據(jù)/換行/第二個(gè)數(shù)據(jù)/換行/……最后一個(gè)數(shù)據(jù)/換行”的格式存儲(chǔ)。
      在WinCC中組態(tài)數(shù)據(jù)顯示畫面,添加函數(shù)功能控件,調(diào)用ktProp函數(shù)設(shè)置函數(shù)功能控件的標(biāo)題、橫縱坐標(biāo)范圍、線條顏色。通過修改“data X”、“data Y”屬性,將獲得的數(shù)據(jù)用描點(diǎn)連線的方式在控件中顯示出來。
      在WinCC中組態(tài)輸入輸出域,用來接收用戶的輸入的查詢條件,即數(shù)據(jù)起始查詢時(shí)間、查詢的數(shù)據(jù)長(zhǎng)度。組態(tài)查詢按鈕,用來觸發(fā)C語(yǔ)言查詢腳本。在腳本中讀入查詢條件,通過fseek函數(shù)瀏覽相應(yīng)數(shù)據(jù)文件,將瀏覽到的時(shí)間與查詢起始時(shí)間比較,如果不滿足查詢條件,則繼續(xù)往下瀏覽,如果滿足查詢條件,則開始將所查詢數(shù)據(jù)取出賦給指針變量, 利用函數(shù)功能控件進(jìn)行顯示。
      Tl 和 T2 滿足如下關(guān)系式TlXM = T2,Tl 彡 lms,T2 彡 250ms,TlS T2。其中,Tl 為可編程序控制器中循環(huán)中斷組織塊的中斷周期,T2為WinCC上位機(jī)軟件全局腳本的觸發(fā)周期,M為T2時(shí)間內(nèi)PLC所采集到的新數(shù)據(jù)的個(gè)數(shù),T1、M、T2均為整數(shù),
      M和N滿足如下關(guān)系式M< N-I。其中,M為WinCC上位機(jī)軟件全局腳本的觸發(fā)周期內(nèi)PLC所采集到的新數(shù)據(jù)的個(gè)數(shù),N為建立的數(shù)據(jù)塊所能存放整型數(shù)據(jù)的個(gè)數(shù)。
      本發(fā)明的有益效果
      本發(fā)明的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,充分利用了 WinCC軟件的開放性,最大限度地使用了系統(tǒng)本身的功能。通過調(diào)整可編程序控制器循環(huán)中斷的周期和WinCC中全局腳本的觸發(fā)周期,本發(fā)明可以使可編程序控制器和WinCC的通信周期由最短的500ms降至IOms不等,并通過編寫程序?qū)崿F(xiàn)了數(shù)據(jù)存儲(chǔ)、顯示和查詢,成功地滿足了有些數(shù)據(jù)需要高速采集的要求。該方法不需要額外的軟硬件支持,便可實(shí)現(xiàn)可編程序控制器和上位機(jī)WinCC軟件間的數(shù)據(jù)高速通信、存儲(chǔ)、顯示和查詢,易于實(shí)施,無(wú)線增加硬件成本, 軟件編程也簡(jiǎn)單,即能低成本的完成單片機(jī)與上位機(jī)之間的高速通信。


      圖1為硬件連接示意圖2為總體技術(shù)方案示意圖3為可編程序控制器中數(shù)據(jù)連續(xù)存儲(chǔ)流程圖4為WinCC中數(shù)據(jù)存儲(chǔ)顯示流程圖;具體實(shí)施方式
      以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說明。
      實(shí)施例1
      如圖1-4所示,一種基于可編程序控制器和上位機(jī)軟件的高速通信方法,具體步驟是
      1.在可編程序控制器中,建立循環(huán)中斷組織塊0B35,設(shè)置其中斷周期為10ms。建立數(shù)據(jù)塊DB10,在數(shù)據(jù)塊中建立整型數(shù)組變量val[l.. 101],val[l]至val[100]用來存儲(chǔ)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù),val[101]用來存儲(chǔ)最新存入數(shù)據(jù)的位置編號(hào)。編寫程序如圖2所示,先根據(jù)上位機(jī)傳來的控制信號(hào)判斷是否需要開啟高速通信功能,若開啟則進(jìn)行數(shù)據(jù)圓整、縮短字節(jié)的處理,通過寄存器間接尋址的方式,將數(shù)據(jù)連續(xù)存入數(shù)據(jù)塊DBlO中,最后更新數(shù)據(jù)位置編號(hào)變量。
      2.在上位機(jī)軟件WinCC中,建立長(zhǎng)度為202字節(jié)的原始數(shù)據(jù)變量gstag,設(shè)置其地址與數(shù)據(jù)塊DBlO相對(duì)應(yīng)。在WinCC中編寫全局腳本,設(shè)置觸發(fā)周期為500ms。流程圖如圖3所示,建立一個(gè)總長(zhǎng)度為202字節(jié)的整型變量數(shù)組,通過調(diào)用系統(tǒng)支持的GetTagRaw 函數(shù),將PLC中的數(shù)據(jù)塊采集到WinCC中,并把GetTagRaw函數(shù)的返回值(解包后的數(shù)據(jù)) 賦給建立好的變量數(shù)組。通過比較本次位置編號(hào)變量值A(chǔ) (數(shù)組的最后一個(gè)整型變量)和上次數(shù)據(jù)解包得到的并已存在上位機(jī)中的位置編號(hào)變量值B,可以得出兩次采集時(shí)間間隔內(nèi)的有效數(shù)據(jù)的位置區(qū)間。如果A大于B,則在上位機(jī)中只存儲(chǔ)解包后數(shù)組中第B到第A 個(gè)數(shù)據(jù),如果A小于B,則在上位機(jī)中只存儲(chǔ)第B到第N-I個(gè)、第1到第A個(gè)數(shù)據(jù)。建立文本文檔數(shù)據(jù)文件,根據(jù)系統(tǒng)日期以“20110627”的格式命名文件,數(shù)據(jù)每次存儲(chǔ)都按“時(shí)間 (17:12:50:500)即時(shí)、分、秒、毫秒,這里的數(shù)值為一個(gè)實(shí)例\n(換行)第一個(gè)數(shù)據(jù)\n(換行)……最后一個(gè)數(shù)據(jù)\n”的格式存儲(chǔ)。每天采集的數(shù)據(jù)以追加的方式存儲(chǔ)在同一個(gè)文件中,不同日期的數(shù)據(jù)存儲(chǔ)在不同的文件中。這樣,上位機(jī)每隔500ms就可采集到50個(gè)數(shù)據(jù), 間接地實(shí)現(xiàn)了高速通信,即每IOms —個(gè)數(shù)據(jù)。
      3.在WinCC中組態(tài)數(shù)據(jù)顯示畫面,添加函數(shù)功能控件,調(diào)用ktProp函數(shù)設(shè)置函數(shù)功能控件的標(biāo)題、橫縱坐標(biāo)范圍、線條顏色。通過修改“data X”、“data Y”屬性,將獲得的數(shù)據(jù)用描點(diǎn)連線的方式在控件中顯示出來。
      4.在WinCC中組態(tài)輸入輸出域,用來接收用戶的輸入的查詢條件,即數(shù)據(jù)起始查詢時(shí)間、查詢的數(shù)據(jù)長(zhǎng)度。組態(tài)查詢按鈕,用來觸發(fā)C語(yǔ)言查詢腳本。在腳本中讀入查詢條件,通過fseek函數(shù)瀏覽相應(yīng)數(shù)據(jù)文件,將瀏覽到的時(shí)間與查詢起始時(shí)間比較,如果不滿足查詢條件,則繼續(xù)往下瀏覽,如果滿足查詢條件,則開始將所查詢數(shù)據(jù)取出賦給指針變量, 利用函數(shù)功能控件進(jìn)行顯示。
      通過調(diào)整可編程序控制器循環(huán)中斷的周期和WinCC中全局腳本的觸發(fā)周期,本發(fā)明可以使可編程序控制器和WinCC的通信周期由最短的500ms降至IOms不等,并通過編寫程序?qū)崿F(xiàn)了數(shù)據(jù)存儲(chǔ)、顯示和查詢,成功地滿足了有些數(shù)據(jù)需要高速采集的要求。
      權(quán)利要求
      1.一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,在可編程序控制器中,將現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)每隔時(shí)間Tl存放于可編程序控制器的數(shù)據(jù)塊中,通過工業(yè)現(xiàn)場(chǎng)總線將該存放的現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至上位機(jī);其中Tl小于可編程序控制器與上位機(jī)之間的默認(rèn)數(shù)據(jù)通訊周期;在上位機(jī)端,對(duì)接收到的數(shù)據(jù)包進(jìn)行解包,并將解包后的數(shù)據(jù)進(jìn)行處理;完成可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊。
      2.根據(jù)權(quán)利要求1所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,在可編程序控制器中,采用定時(shí)中斷方式對(duì)現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)進(jìn)行存儲(chǔ)。
      3.根據(jù)權(quán)利要求1所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,所述的處理為存儲(chǔ),或者直接將解包后的數(shù)據(jù)進(jìn)行顯示、繪圖或查詢。
      4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,所述的數(shù)據(jù)包的形成過程即數(shù)據(jù)打包過程為在數(shù)據(jù)塊中建立長(zhǎng)度為2N字節(jié)的整型數(shù)組變量,其中前2N-2個(gè)字節(jié)用來存儲(chǔ)實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)即整形數(shù)據(jù),最后兩個(gè)字節(jié)用來存儲(chǔ)最新存入數(shù)據(jù)的位置編號(hào);每一次數(shù)據(jù)存儲(chǔ)時(shí),更新位置編號(hào)和實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù),N為建立的數(shù)據(jù)塊所能存放整型數(shù)據(jù)的個(gè)數(shù)。
      5.根據(jù)權(quán)利要求4所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,數(shù)據(jù)包進(jìn)行解包即數(shù)據(jù)解包的過程為在上位機(jī)軟件中定義一種原始數(shù)據(jù)變量,將其地址和大小設(shè)置成與可編程序控制器里的數(shù)據(jù)塊相一致,再建立一個(gè)總長(zhǎng)度為2N字節(jié)的整型變量數(shù)組;在上位機(jī)軟件中設(shè)置全局腳本的觸發(fā)周期為T2,將可編程控制器中的數(shù)據(jù)塊采集到上位機(jī)中,將獲取的數(shù)據(jù)賦給所述的整形變量數(shù)組。
      6.根據(jù)權(quán)利要求5所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,所述的上位機(jī)軟件為WinCC軟件,WinCC軟件通過調(diào)用系統(tǒng)支持的GetTagRaw函數(shù),將可編程控制器中的數(shù)據(jù)塊采集到WinCC中,并把GetTagRaw函數(shù)的返回值即解包后的數(shù)據(jù)賦給建立好的變量數(shù)組;且Tl = M*T2 ;M為T2時(shí)間的采樣次數(shù);M和N滿足關(guān)系式M < N-I。
      7.根據(jù)權(quán)利要求6所述的可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,其特征在于,在WinCC全局腳本中,數(shù)據(jù)解包后通過比較本次位置編號(hào)變量值A(chǔ)和上次數(shù)據(jù)解包得到的并已存在上位機(jī)中的位置編號(hào)變量值B,得出兩次采集時(shí)間間隔內(nèi)的有效數(shù)據(jù)的位置區(qū)間;如果A大于B,則在上位機(jī)中只存儲(chǔ)解包后數(shù)組中第B到第A個(gè)數(shù)據(jù),如果A小于B,則在上位機(jī)中只存儲(chǔ)第B到N-I個(gè)、第1到第A個(gè)數(shù)據(jù);建立文本文檔數(shù)據(jù)文件,根據(jù)系統(tǒng)日期以年月日的格式命名文件,數(shù)據(jù)每次存儲(chǔ)都按“當(dāng)前時(shí)間一時(shí)分秒毫秒/換行/ 第一個(gè)數(shù)據(jù)/換行/第二個(gè)數(shù)據(jù)/換行/……最后一個(gè)數(shù)據(jù)/換行”的格式存儲(chǔ)。
      全文摘要
      本發(fā)明公開了一種可編程序控制器與上位機(jī)之間的數(shù)據(jù)通訊方法,在可編程序控制器中,通過循環(huán)中斷將數(shù)據(jù)打包存放于可編程序控制器數(shù)據(jù)塊中,數(shù)據(jù)包通過工業(yè)現(xiàn)場(chǎng)總線傳輸至上位機(jī)系統(tǒng);在上位機(jī)winCC軟件中,對(duì)數(shù)據(jù)進(jìn)行解包,利用文本文件存儲(chǔ)數(shù)據(jù),并利用函數(shù)功能控件實(shí)時(shí)顯示,編寫腳本查詢數(shù)據(jù)。該方法不需要額外的軟硬件支持,便可實(shí)現(xiàn)可編程序控制器和上位機(jī)winCC軟件間的數(shù)據(jù)高速通信、存儲(chǔ)、顯示和查詢。
      文檔編號(hào)G05B19/418GK102508465SQ20111030155
      公開日2012年6月20日 申請(qǐng)日期2011年10月8日 優(yōu)先權(quán)日2011年10月8日
      發(fā)明者舒招強(qiáng), 譚建平, 陳暉 申請(qǐng)人:中南大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1