こんばんわ。今回またCodesysのVisualizationの話です。みなさん普段どんな風に画面を作っていますか?もし同じな配置が何十個もあったらどうします?グループしてCopy & Paste>そしてアドレスを変えるんですか?前のBlogにはSiemensのWinCC画面を作るのに
Faceplateという概念があり、つまり画面の器を作って、中にある数字の表示・スイッチなどはすべてパラメータとして扱う。詳しくはこちら:
今回はこれのCodesys版を紹介したいと思います。ですが、このやり方を見る前、まず共通画面のことを先に把握する必要があり、まぁ、そんな大したことではありません。詳しくはこちら:
よし、それでは始まりましょう。
基本
例えば、いま操作パネルの配置があります。Tag名・スイッチ・数値の表示。
実際これは6つがあります。一番ベタなやり方としてはそのまあ6つをCopyしアドレスを変更して、また修正あったらCopyし直し…などの地味の連続。
ここ画面の矢印のLineを下に引っばってみてください。
VAR_IN_OUTなどがあります。
ではそのVAR_IN_OUTの中にこの配置で使われる変数を定義します。
そして、Pointなのはここです。スイッチなどの画面Objectはそのまま割り付けることができます。例えば、SW3が押すと、変数sw3がOnになりますよ~とか。
でもそれじゃなにが役にたちますかね?
とりあえず、一通り全部割り付けおきましょう。そしてちょっとパネルっぽく白い四角形を付けます。
次はStation1という画面を作ります。
Current projectから先作った画面を引っ貼ります。
それじゃ6個も貼り付けましたね。
引っ張るときにそのAssign ParametersというPop Upでてきませんかでした?
それは先VAR_IN_OUTで定義した変数を実際PLCのどこの変数に紐つけますか?の意味ですね。
…のボタンで押すと変数を選びれます。
ここで一旦PLC側に行きましょう。GVL_Panel1を作ります。
その中に先VisualizationのVAR_IN_OUTで作られたInterfaceと合わせて作ります。
…そしてパネル4つあるので4つをCopyします。
それで準備OK。
ではまたVisualization側に戻りましょう。
パネルのObject>Propertiesをみると”References”という新しい項目が見えます。
+を押します。
そうすると先Visualizationで割り付けられたsw1などはここで実際PLCのTagと紐つけることができます。
つまりこんな感じですね。
そしてプログラム上でテスト用の数値入れてみます。
うん、ちゃんと反映されていますね。
Advanced
基本のやり方はもうわかりました。あなたが疑問がくるかもしれません。なぜそんなめんどくさいことをしないとだめ?結局は一緒にじゃない?と思うかもしれません。
ですが、もしVisualizationのVAR_IN_OUTなどのInterfaceにある変数をDUTに定義したらどうになります?ここでやってみます。
まずPLC側から始まります。
DUTを追加します。
名前は適当でOKです。
そして同じな変数達を定義します。
GVL_Panelを作ります。
中にUDT_Panelの配列を作ります。
次はVisualization側ですね。もう1つの画面を作成します。
VAR_IN_OUTは先作った、UDT_Panelにします。
次は同じの作業ですね。
最後もう1つの画面を作ります。
今度はCurrent projectに先作ったVisualization_DUTを使います。
同じく、4つのパネルを追加します。
ここはMain Pointです。ReferenceのところはDUTをそのままパラメータとして渡すことができます。つまり手間はかからなく済みます。
一応テスト用のプログラムも追加。
うん!ちゃんと反映されていますね。
はーい、お疲れ様です。