VNCサーバーを使用する
この記事では、VNCサーバーを介した画面共有について説明します。Focus HMIオペレーターパネルでは、VNCサーバー接続はデフォルトでオープンかつパスワードフリーに設定されています。そのため、設定を変更することなく、VNCサーバー経由でパネルに接続できます。
私たちがすべきことは、メインコンピュータでVNC Viewerなどのプログラムを開き、 Focus HMIのIPアドレスを使用して接続することです。
VNC Viewerはここからダウンロードできます。
VNC Viewerプログラムを開いた後、「VNCサーバーアドレスを入力するか検索する」セクションにIPアドレスを入力し、続いてVNCサーバーによって割り当てられたポート番号「5900」を入力する必要があります。

表示された警告メッセージで「続行」をクリックし、ウィンドウを閉じます。

これらの手順を完了すると、Focus HMIパネルへの接続が完了します。これで、VNCサーバー経由でパネルを制御できるようになります。



VNCサーバーを暗号化して使用したい場合は、「 VNCサーバーのパスワードを作成する方法」という記事をご覧ください。
VNC接続制御スクリプト
接続の問題が発生した場合にVNCを再起動するスクリプトをプロジェクトに追加できます。
import java.lang.reflect.Method;
import java.net.*;
import java.io.*;
public class NewScript{
public static short VncState;
public NewScript(Class Accessing){
Thread newThread = new Thread(() -> {
try{
if(VncState >= 2){
VncState = 0;
Runtime.getRuntime().exec("x11vnc -display :0 -shared -forever");
}else{
try (Socket socket = new Socket("192.168.0.11", 5900)) {
VncState = 1;
} catch (UnknownHostException ex) {
VncState = 2;
Runtime.getRuntime().exec("x11vnc -R stop");
} catch (IOException ex) {
VncState = 3;
Runtime.getRuntime().exec("x11vnc -R stop");
}
}
Method setValue = Accessing.getMethod("setValue", String.class, Object.class);
setValue.invoke(Accessing, "VncState", VncState);
}catch(Exception exp){
javax.swing.JOptionPane.showMessageDialog(null , exp.getMessage());
}
});
newThread.start();
}
}
新しいスクリプトを作成し、上記のコードをコピーしてください。コンパイル後、スクリプトを保存する際は、トルコ語の文字を使用しないでください。指定した名前がクラス名として使用されます。私はVncTestという名前で保存しました。
作成したスクリプトの設定セクションで、スクリプトの実行方法を選択できます。
「毎分」セクションで作成したスクリプトを、1分ごとに実行するように選択しました。

