KepServerEx是一款在工業控制中比較常見的數據采集服務軟件之一,提供了多種類型的驅動,具有比較廣泛的適用性。很多廠商和個人都會選擇用它來做OPCServer。在項目的實施或測試過程中,我們有時會遇到身邊沒有傳感器、PLC之類設備的情況,就無法通過實時數據來測試工作成果的有效性。幸運的是KepServerEx提供了數據模擬功能,可以提供多種類型、格式的模擬數據。下面就是具體的配置過程。
創建Channel
Channel即通道,可以將它理解為OPC中的Server。
名字隨便取
這一步是關鍵,設備驅動選擇“Simulator”,即模擬器驅動。然后一直點擊下一步完成。。
剩余兩項設置也可以調整,如果需要可以自行調整
創建Device
Device即設備,可以理解為OPC中的Group。
隨便起個名。
設備類型可以根據需要選擇16位或8位。
設備ID,可以自行修改。
下一步,完成。
創建Tag
Tag即標簽,可理解為OPC中的Item。現在才來到整篇文章的重點。
添加標簽的界面包含兩部分,一部分是對標簽的定義(Identification),包括名稱(Name)、地址(Address)、描述(Description),另一部分是數據的屬性(Data Properties),包括數據類型(DataType )、讀寫類型(Client)、掃描頻率(Scan Rate)。
對我們而言,用處最大的就是Address,我們可以編寫不同的函數放在Address中用來模擬不同類型的數據。官方文檔提供了多種模擬函數供我們使用(可在幫助文檔中找到)。
線形變化型
RAMP(Rate, Low Limit, High Limit, Increment)
Rate:變化率,單位毫秒
Low Limit:下限值
High Limit:上限值
Increment:變化量
舉例:
RAMP(120, 35, 100, 4)
從35 增長到100,每120毫秒增長4。
RAMP(300, 150.75, 200.50, -0.25)
從200.50降低到150.75,每300毫秒減少0.25。
隨機變化型
RANDOM(Rate, Low Limit, High Limit)
Rate:變化率,單位毫秒
Low Limit:下限值
High Limit:上限值
舉例:
RANDOM(30, -20, 75)
在-20和75之間隨機變化,每30毫秒變化一次。
三角函數型
SINE(Rate, Low Limit, High Limit, Frequency, Phase)
Rate:變化率/變化周期,單位毫秒
Low Limit:下限值
High Limit:上限值
Frequency:三角函數頻率
Phase:三角函數偏移量
注意:頻率(Frequency)的最大有效值是5Hz,有效范圍是從0.001到5赫茲。偏移量(Phase)取值范圍在0.0至360.0之間。為了得到一個更好的正弦輸出,變化率(Rate)應該至少比期望頻率快一倍。比如頻率(Frequency)為5赫茲的正弦曲線,其周期是200毫秒,那么變化周期(Rate)的值最大只能設為100毫秒。在這類函數中,變化周期的取值范圍是10-1000毫秒。
舉例:
SINE(10, -40, 40, 2, 0)
以2赫茲的頻率在-40和40 之間進行正弦變化,偏移量為0
用戶自定義型
USER(Rate, User Value1, User Value2, User Value3,…User ValueN)
Rate:變化率,單位毫秒
User Value1….ValueN:用戶自定義的值,可以有多個
舉例:
USER(250, Hello, World, This, Is, A, Test)
以250毫秒的頻率循環顯示Hello、World、This、Is、A、Test中的一個單詞。
USER(50, 1,1,0,1,0,1,0,0,1,1,1,0,0,0)
以50毫秒的頻率循環顯示后面的1、0。
需要注意的是上面幾種函數創建的Tag都是只讀(ReadOnly)類型的,是不能寫入的。
創建自己需要的標簽
有了上面的函數我們可以根據自己的需要創建不同類型的標簽。
RANDOM(200, 10.0, 40.0)模擬室內溫度
RANDOM(200, 30.0, 90.0)模擬室內濕度
USER(1000, 1,1,0,1,0,1,0,0)模擬開關比變化量
RAMP(5000, 0, 1000, 1)模擬人員進入數量
將標簽添加完之后保存,用OPCClient連接就可以看到數據在愉快的跳動了。