• <menu id="w2i4a"></menu>
  • logo TOP Server OPC Server教程

    文檔首頁>>TOP Server OPC Server教程>>【Software Toolbox教程】如何在OmniServer中設(shè)置心跳消息

    【Software Toolbox教程】如何在OmniServer中設(shè)置心跳消息


    下載TOP Server OPC Server最新版本

    您可能知道,OmniServer用于從使用“非標(biāo)準(zhǔn)”協(xié)議進(jìn)行通信的設(shè)備中檢索信息,例如體重秤,條形碼閱讀器和打印機(jī)。 在某些情況下,需要將設(shè)備協(xié)議設(shè)計為客戶端應(yīng)用程序(HMI,SCADA或其他)而非OmniServer完全控制輪詢的位置。但在您發(fā)出下一條消息之前,您如何知道該設(shè)備是否仍然連接?

    在我們的“OmniServer您知道嗎?”后續(xù)的第一篇文章中。博客系列,我們將介紹如何創(chuàng)建所謂的心跳消息,以確認(rèn)您的設(shè)備在發(fā)送下一條消息之前正在“收聽”。 對于許多設(shè)備,設(shè)備在沒有活動的一段時間后“進(jìn)入睡眠狀態(tài)”并不罕見。有時在設(shè)備的設(shè)置中存在可配置的超時,該超時控制該不活動時段的持續(xù)時間,但有時不存在。 許多這樣的設(shè)備可以通過發(fā)送特定命令或發(fā)送不是命令的任何字符或字符序列來“喚醒”。這通常被稱為心跳消息

    我為什么要這樣做?

    設(shè)備的一致例程輪詢是OmniServer用于確定設(shè)備是否可用的機(jī)制。如果不允許OmniServer正常控制該輪詢,則無法知道儀器是否已停止通信。

    心跳消息可以用作設(shè)備的基礎(chǔ)輪詢機(jī)制。然后,客戶端使用心跳通知項來標(biāo)記潛在的通信問題。

    我怎樣才能做到這一點?

    在此示例中,我們將設(shè)置OmniServer以使用“STATUS”一詞自動輪詢儀器。注意: 這只是一個示例 - 對于您的設(shè)備,您需要確認(rèn)可以使用哪個序列/消息來保持設(shè)備喚醒,但不會導(dǎo)致設(shè)備出現(xiàn)任何問題。

    然后OmniServer將等待“OK”的值返回。同樣,這只是一個示例 - 您將需要一個可以發(fā)送到設(shè)備的序列/消息,從而產(chǎn)生某種形式的響應(yīng)或確認(rèn)。如果沒有任何反饋或儀器響應(yīng)不正確,Heartbeat通知項將設(shè)置為False或Zero。

    1、創(chuàng)建一個名為Heartbeat的新OmniServer項,如下面的屏幕截圖所示。確保所有設(shè)置都匹配,尤其是“Item should be automatically activated/項目應(yīng)自動激活”設(shè)置:

    ComponentOne

    2、使用以下示例在協(xié)議內(nèi)創(chuàng)建新的OmniServer命令/請求消息。

    3、在“常規(guī)”選項卡上,輸入以下值。注意通知項目。 只要此特定消息成功完成,此字段中選定的項目將由OmniServer設(shè)置為True或One。確保啟用“消息應(yīng)自動激活”選項以確保即使客戶端應(yīng)用程序未請求項目也執(zhí)行消息也很重要:

    ComponentOne

    4、在“Request/請求”選項卡上,輸入以下值。請記住,這只是一個示例。請查看儀器的文檔,查看是否有可以發(fā)送的消息來檢索狀態(tài)信息:

    ComponentOne

    5、最后,在“響應(yīng)”選項卡上,輸入以下值。同樣,您的響應(yīng)可能會有所不同,但關(guān)鍵項目最后是{Heartbeat:L}(其中{Heartbeat} 可以是您剛剛創(chuàng)建的項目,或者您可以選擇任何其他整數(shù)字段)。

    “L”用于Linkage格式樣式,它告訴OmniServer正常讀入數(shù)據(jù),但不會將任何數(shù)據(jù)分配給項目,也不會 期望該項目的任何數(shù)據(jù)。這對于使此命令/請求消息定期執(zhí)行而不會導(dǎo)致錯誤至關(guān)重要,因為設(shè)備未返回該項的值:

    ComponentOne

    6、最后,保存您的協(xié)議。

    要測試此協(xié)議,請在客戶端應(yīng)用程序中創(chuàng)建一個標(biāo)記以指向項目Heartbeat。這將激活心跳消息,并持續(xù)將項目Heartbeat設(shè)置為值1,直到儀器沒有響應(yīng)或發(fā)出除“OK”之外的任何內(nèi)容作為對請求的響應(yīng)。因此,任何時候Heartbeat都?xì)w零,你知道出了什么問題。

    Heartbeat消息可以用于其他事情嗎?

    在上面的實現(xiàn)中,Heartbeat提供了與名為Status的保留OmniServer項類似的功能。但是,使用通知項會增加故障排除功能。

    例如, 一旦通信出現(xiàn)問題,Status和Heartbeat都會變?yōu)榱悖ɑ蚣伲?。但是,狀態(tài)是一個全局項目,基本上意味著“未在協(xié)議內(nèi)某處收到預(yù)期通信”。如果您有五百條消息,那么排除哪個消息導(dǎo)致錯誤可能很麻煩。

    但是使用上面的通知項(例如Heartbeat),可以說“此消息中未收到預(yù)期通信”。因此,您可以使用通知項來準(zhǔn)確找出問題所在。

    Heartbeat消息是否有任何限制?

    如果您的設(shè)備不接受任何命令(如某些條形碼閱讀器和其他設(shè)備的情況),那么此方案將無法工作,OmniServer將無法確定設(shè)備是否仍然連接,因為這是一個限制協(xié)議本身。

    我在哪里可以獲得更多信息?

    你有一個你不太確定的協(xié)議嗎?與往常一樣,我們很樂意幫助您對協(xié)議文檔進(jìn)行免費協(xié)議審查或回答您可能遇到的問題。

    購買TOP Server OPC Server正版授權(quán),請點擊“咨詢在線客服”喲!

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();