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分ごとに実行するように選択しました。

類似の投稿

返事を書く