0

したがって、これは非常に奇妙な問題ですが、基本的に、独自のasp命令を使用してPLCからデータを読み取ることができるサーバーがあります。これらのasp命令を使用できるサーバーに配置する独自のWebページを作成できます。したがって、PLCからデータを取得するために、いくつかのjavascriptといくつかのasp命令を含む非常に基本的なhtmlコードがあります。PLC の値は常に変化しているため、ページでこれらの値を更新し続けたいと思います。メタリロードを使ってみたのですが、画面がちらつき、あまりいい感じではありません。また、Javaスクリプトを使用して間隔を置いて更新しようとしましたが、ページ全体を更新しなくてもカウンターを機能させることができましたが、aspは更新されませんでした(asp値を更新するにはページをリロードする必要があるようです)。サーバーにasp値を更新するように要求する方法はありますか? 実際のウェブページをリロードする必要はありませんか? または、これを完全に行うより良い方法はありますか?基本的に何が起こっているのかを見ることができるように、私が試したいくつかのコードを次に示します。

<script type="text/javascript">
window.onload = setupDataRefresh;
function setupDataRefresh() {
  setInterval("refreshData();",100);
}
function refreshData() {
  document.getElementById("Tag0").innerHTML="<% ReadLogixTag("1,0","doLight","BOOL");%>";
}
</script>

上記のコードでは、asp コードの ReadLogixTag はサーバー デバイスに固有です。どんな助けでも大歓迎です。

ありがとう、

ジャック

4

1 に答える 1

1

こちらをご覧ください。これは素晴らしいライブラリです。基本的には、クラシック ASP での php xajax の実装です。

自分でこれを行うこともできますが、ajaxed には他の便利なクラスがいくつかあります...

基本的には、javascript メソッド refreshData() で ajax リクエストを実行します (たとえば、jQuery を使用)。サーバー側で ReadLogixTag() が実行され、html コードがクライアントに返されます。

例 (jQuery あり、ajaxed なし):

<%

if request.form("ajax") = true then
  call ReadLogixTag( Request.Form("param1"), Request.Form("param2"), Request.Form("param3") )
end if

sub ReadLogixTag(param1, param2, param3)
  ' do stuff
  response.write "<b>" & param1 & "</b>"
end sub

%>

<script type="text/javascript">
window.onload = setupDataRefresh;
function setupDataRefresh() {
  setInterval("refreshData();",100);
}
function refreshData() {
  $.post("myASPPage.asp", {
    ajax: true,
    param1: "1,0",
    param2: "doLight",
    param3: "BOOL"
  }, function(data) {
    $("#Tag0").html(data);
  });
}
</script>

<div id="Tag0"></div>
于 2013-01-08T06:45:47.367 に答える