西門子CPU模塊6ES7313-6CG04-4AB1技術(shù)詳解
3)然后使用For循環(huán),依次將兩個數(shù)組的值分別賦給函數(shù)趨勢控件的“DataX"和“DataY"屬性,并將控件的“InsertData"方法設(shè)置為“TRUE"即可。 如何繪制將某一變量顯示為另一變量的函數(shù)的曲線 函數(shù)趨勢控件還可以提供將某一變量顯示為另一變量的函數(shù)的選項。下面的例子實現(xiàn)了將X軸數(shù)組的各值進行平方運算后,計算出Y軸數(shù)組的各值,然后根據(jù)計算出的XY值繪制趨勢曲線。基于2.1示例中的C腳本代碼,只需要稍作改動,由X軸數(shù)值計算出Y軸數(shù)值即可,改動的代碼如下所示: short X_Values[11] = ; …… vtDataY.vt = VT_I2; vtDataY.u.iVal = pow( X_Values[i],2); 此外,C腳本中提供了豐富的數(shù)學(xué)計算函數(shù),可以繪制出各種復(fù)雜的函數(shù)曲線。 2.3 如何繪制橫坐標(biāo)為一系列時間戳的數(shù)值曲線 在某些情況下,要求曲線的橫坐標(biāo)為時間(時間間隔可以不等),縱坐標(biāo)為對應(yīng)不同時間的數(shù)值(例如某物體的快速運行軌跡曲線)。例如,當(dāng)使用WinCC和S7-400 PLC進行高速數(shù)據(jù)采集時,會將高速采集的數(shù)據(jù)存儲到WinCC的變量歸檔中,同時包含了PLC采集數(shù)據(jù)時的時間戳。這些數(shù)據(jù)的時間間隔非常短,一般只是毫秒級。用戶可以利用函數(shù)趨勢控件把這些時間及其對應(yīng)的數(shù)值顯示在函數(shù)趨勢控件上。 如果已經(jīng)得到了這些數(shù)據(jù)和時間戳,如何將這些數(shù)據(jù)顯示在趨勢曲線上呢?在西門子的網(wǎng)站上可以下載到WinCC的演示項目“Demo V6",其中包含了關(guān)于函數(shù)趨勢控件的功能演示。演示項目中的畫面“PA5_bld07.pdl"可以實現(xiàn)以上的需求。關(guān)于演示項目,請到西門子下載中心下載: 在下載中心的搜索中輸入“WinCC V6 使用技巧",搜索并下載即可。注意,如果WinCC軟件版本高于6.0 SP3,需要做項目升級。由于實現(xiàn)的代碼比較多,這里只針對重點的部分進行介紹如下: 1. 首先,將獲得的一組時間戳分別賦值給 SYSTEMTIME 類型的結(jié)構(gòu)體數(shù)組。 2. 設(shè)置函數(shù)趨勢控件的屬性。使用SafeArrayCreate 創(chuàng)建安全數(shù)組,并設(shè)置數(shù)組元素的類型。 3. 將對應(yīng)于日期時間類型(對應(yīng)于X軸)和實數(shù)類型(對應(yīng)于Y軸)的數(shù)據(jù)賦值給安全數(shù)組的元素,上述兩種類型分別對應(yīng)于變體的VT_DATE和VT_R8類型。其中有一個重要的全局項目函數(shù)CcDateFromSt,用于檢驗結(jié)構(gòu)體數(shù)組各成員的有效性,以及將時間日期由SYSTEMTIME 類型的結(jié)構(gòu)體數(shù)組轉(zhuǎn)化為變體類型VT_DATE所需的double類型。
|