Ethernetコネクションの設定
このFP命令は、nStartPortとnEndPortで指定されるユーザーコネクションの範囲で、sModeとsAddressによって指定される設定によりEthernetコネクションを設定します。また、プロジェクトナビゲータの で適切なパラメータが設定されていることを確認してください。
入力
通信モードとコネクションパラメータを設定します。
通信モード(必須のキーワード)
通信モードのパラメータを指定します。
キーワード:
'MEWCOM'
:MEWTOCOL-COM (初期値)
'MEW7COM'
:MEWTOCOL7-COM
'MODBUS'
:MODBUS-TCP
'MEWDAT'
:MEWTOCOL-DAT
'GP'
:プログラム制御[汎用] (16ユーザーコネクションでのみ使用可能)
'GP_LARGE'
:大容量受信を備えたプログラム制御[汎用] (最初のユーザーコネクションでのみ利用可能で、PLCタイプCPS4*およびCPS3*バージョン4.32以降でのみ利用可能)
オプション設定(必須のキーワード)
一部の通信モードには、有効にできる追加のプロトコルオプションがあります。選択した通信モードにオプションを使用するかどうかを指定します。
'OPTAV'
:選択した通信モードで使用可能なオプションが有効化されます
'OPTNAV'
:選択した通信モードに使用できるオプションがないか、使用可能なオプションが有効化されていません(初期値)
通信モード |
|
|
---|---|---|
MEWTOCOL-COM |
FP2 ET-LANに接続 |
接続しない |
MEWTOCOL7-COM |
非該当 |
非該当 |
MODBUS-TCP |
非該当 |
非該当 |
MEWTOCOL-DAT |
FP2 ET-LANに接続 |
接続しない |
プログラム制御[汎用通信] |
特殊ヘッダを追加しない |
特殊ヘッダを追加する |
大容量受信を備えたプログラム制御[汎用] |
特殊ヘッダを追加しない |
非該当。このキーワードを指定すると、演算エラーが発生します。 |
オープンするEthernetコネクションのタイプを指定する(必須のキーワード)。
'CL'
:クライアント接続(初期値)
クライアント接続の場合、相手局IPアドレスは、nStartPortで指定されたユーザーコネクションからnEndPortで指定されたユーザーコネクションまで、ユーザーコネクションごとに1ずつ増加します。
'SV'
:サーバー接続
サーバー接続の場合、マスターユニットのポート番号は、nStartPortで指定されたユーザーコネクションからnEndPortで指定されたユーザーコネクションまで、ユーザーコネクションごとに1ずつ増加します。
Ethernetコネクションをオープンする方法を指定する(必須のキーワード)。
'AUTO'
:接続を自動的にオープンします(初期値)
'MANU'
:接続を自動的にオープンしません(代わりに、命令FP_ETHERNET_CONNECTION_OPENを使用する)
Ethernet通信のタイプを指定する(必須のキーワード)。
'TCP'
:TCP/IP設定(初期値)
'UDP'
:UDP/IP設定(通信モードGP_LARGEでは使用できません)
ご注意:
通信タイプとしてUDPを指定する場合、FP命令の使用と、プロジェクトナビゲータでのコンフィグレーションの設定は異なります。プロジェクトナビゲータでは、使用できるパラメータ「オープンタイプ」はありません。ただし、FP命令で「オープンタイプ」を指定する必要があります。スレーブ接続の場合はキーワード'SV'
を、マスター接続の場合は'CL'
を使用します。
通信モードGP_LARGEにUDPを指定しないでください。指定すると演算エラーが発生します。
初期値にリセットする
'INITIAL'
:すべての設定を初期値設定にリセットします
変換例:
通信モードとしてMEWTOCOL-COMを設定し、FP2 ET-LANに接続するオプションを使用します。クライアント接続が確立されて自動的にオープンします。通信タイプはTCP/IPになります('MEWCOM,OPTAV,CL,AUTO,TCP'
)。
通信モードとしてMODBUS-TCPを設定し、オプションは利用できません。サーバー接続が確立されますが自動的にはオープンしません。通信タイプはUDP/IPになります('MODBUS,OPTNAV,SV,MANU,UDP'
)。
通信モードをプログラム制御に設定し、特別なヘッダを追加します。サーバー接続が確立されて自動的にオープンします。通信タイプはUDP/IPになります('GP,OPTNAV,SV,AUTO,UDP'
)。
通信モードを大容量受信を備えたプログラム制御に設定し、特別なヘッダは追加しません。サーバー接続が確立されますが自動的にはオープンしません。通信タイプはTCP/IPになります('GP_LARGE,OPTAV,SV,MANU,TCP'
)。
コンフィグレーションを初期値設定にリセットする場合、通信モードをMEWTOCOL-COMにしてFP2 ET-LANに接続しません。クライアント接続が確立されて自動的にオープンします。通信タイプはTCP/IPになります('INITIAL'
)。
アドレスパラメータを設定します。設定は、クライアント接続とサーバー接続のどちらを指定しているかによって異なります。
クライアント接続の場合は、相手局のIPアドレスとポート番号、および未使用の接続の切断時間を指定する必要があります。
サーバー接続の場合は、マスターユニットのポート番号と未使用の接続の切断時間を指定する必要があります。
クライアント接続の指定
相手局のIPアドレス(必須のキーワード)
最初のユーザーコネクションの相手局IPアドレスをnStartPortとnEndPortで指定されるユーザーコネクションの範囲内で指定します。他のユーザーコネクションのIPアドレスは、IPアドレスの最後のブロックを1つずつ増加させることによって設定されます。宛先ポート番号と切断時間の設定は、すべてのユーザーコネクションで同じであり、加算されることはありません。
IPアドレスの場合は、最初にキーワードIPv4
またはIPv6
を指定します。
IPv4の文法: 例'IPv4=111.122.133.144'
IPv6の文法: 例'IPv6=1111:122:2:1555:0:0:1888'
IPv4アドレスの場合、範囲の制限があることに注意してください。IPv4の場合、000.000.000.000 (0.0.0.0)は指定できません。無効なIPアドレスが命令に指定されたとき、演算エラーは発生せず、出力bErrorがTRUEにセットされます。システム変数sys_iEthernetConnectionErrorCodeが「1:不正なIPアドレスの指定」に設定されます。
相手局ポート番号(必須のキーワード)
キーワード: 'PORT'
構文:'PORT=xxxxx'
値:1~65535
未使用の接続の切断時間 (必須のキーワード)
キーワード: 'DISCONT'
構文: 'DISCONT=xxxx'
値:0~4294967295ミリ秒(10ミリ秒単位)。0:接続は自動的に切断されません。
受信バッファ先頭アドレス(オプションパラメータ)
このパラメータは、通信モードがプログラム制御[汎用通信]に設定されている場合に、FP0H C32ET/EPおよびFP-XH C40ET, C60ET, FP-XH C60ETFでのみ使用できます。
キーワード: 'BUFTOP'
構文: 'BUFTOP=xxxx'
値: DT0~最大値まで
受信バッファのサイズ(オプションパラメータ)
このパラメータは、通信モードがプログラム制御[汎用通信]に設定されている場合に、FP0H C32ET/EPおよびFP-XH C40ET, C60ET, FP-XH C60ETFでのみ使用できます。
キーワード: 'BUFSIZE'
構文: 'BUFSIZE=xxxx'
値:0~2048
変換例:
相手局のアドレスを192.244.2.10に設定し、相手局のポート番号を9000に設定します。接続が使用されていない場合でも、自動的に切断しません('IPv4=192.244.2.10,PORT=9000,DISCONT=0'
)。
相手局のアドレスを1222::1555:0:0:1999に設定し、相手局のポート番号を10000に設定します。接続を30秒間使用しなかった場合は、自動的に切断します('IPv6=1222::1555:0:0:1999,PORT=10000,DISCONT=30000'
)。
相手局のアドレスを192.168.1.5に設定し、相手局のポート番号を4000に設定します。接続を50秒間使用しなかった場合は自動的に切断します。受信バッファの開始アドレスをDT4に設定し、受信バッファサイズを256に設定します。 'IPv4=192.168.1.5, PORT=4000, DISCONT=100, BUFTOP=DT4, BUFSIZE=256'
サーバー接続の指定
マスターユニットのポート番号(必須のキーワード)
キーワード: 'PORT'
構文: 'PORT=xxxxx'
値:1~65535
未使用の接続の切断時間 (必須のキーワード)
キーワード: 'DISCONT'
構文: 'DISCONT=xxxx'
値:0~4294967295ミリ秒(10ミリ秒単位)。0:接続は自動的に切断されません。
変換例:
マスターユニットのポート番号を9000に設定します。接続が使用されていない場合でも、自動的に切断しません('PORT=9000,DISCONT=0'
)。
マスターユニットのポート番号を10000に設定します。接続を30秒間使用しなかった場合は、自動的に切断します('PORT=10000,DISCONT=30000'
)。
マスターユニットのポート番号を11111に設定します。接続を70ミリ秒間使用しなかった場合は、自動的に切断します('PORT=11111,DISCONT=70'
)。
設定する最初のユーザーコネクションの番号を設定します
SYS_ETHERNET_USER_CONNECTION_1–SYS_ETHERNET_USER_CONNECTION_216
設定する最後のユーザーコネクションの番号を設定します
SYS_ETHERNET_USER_CONNECTION_1–SYS_ETHERNET_USER_CONNECTION_216
出力
IPアドレスが無効な場合
IPアドレスが確立されていないときに命令が実行された場合
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
キーワードの順序を変更しないでください。キーワードと設定パラメータはここに記載されている順序で記述してください。
キーワードおよび各設定を"," (カンマ)で区切り、入力します。
nStartPort £ nEndPortであることを確認してください。
すべての相手局IPアドレス(クライアント接続)またはすべてのマスターユニットのポート番号(サーバー接続)が許容範囲内になるように、nStartPortとnEndPortを必ず指定してください。
Ethernetユーザーコネクションの最大数は216です。
ユーザーコネクションがオープンしているとき、またはユーザーコネクションが自動的にオープンするように設定されているときに命令を実行すると、演算エラーが発生します。ただし、複数のユーザーコネクションが命令を使用して設定されている場合、演算エラーが起きる前のユーザーコネクションの設定変更が行われます。演算エラーが起きた後のユーザーコネクションの設定変更は行われません。
この命令を、すでに設定されている接続を含む複数のクライアント接続に使用すると、1つのサーバーに設定されているユーザーコネクションがまとめてバンドルされ、すべて同時にオープンしたりクローズしたりするするため、演算エラーが発生します。
この命令は、割り込みプログラム中で使用することはできません。
大文字と小文字の両方を使用できます。「Abcd」、「ABCD」、「abcd」は同義語です。
命令を実行する前にsys_bIsEthernetInitializingがFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingはTRUEになります。sys_bIsEthernetInitializingがTRUEのときに命令を実行すると、エラーが発生します。
命令を実行する前にsys_bIsEthernetIPAddressAssignedがTRUEであることを確認してください。sys_bIsEthernetIPAddressAssignedがFALSEのときに命令を実行すると、bErrorがTRUEになり、命令が実行されずに終了します。
誤ったIPアドレスが指定された場合bErrorがセットされますが、何も実行されません。
この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。
この命令は、PLCに永続的に保存されているEthernet設定データを上書きしません。PLCの電源をオフにしてから再度オンにすると、PLCに保存されているEthernet設定データが再び使用されます。
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
nStartPort > nEndPortの場合。
ユーザーコネクション番号が許容範囲外の場合。
パラメータに指定された値が許容範囲外の場合。
同じキーワードを2回以上指定した場合。
ポート番号が無効な場合。
文字列データが256文字を超えた場合。
オープン中のコネクションがある場合。
自動的にオープンする設定のコネクションがある場合。
nStartPortとnEndPortによって指定される範囲内の1つ以上のユーザーコネクションが、既存のサーバーコンフィグレーションに属している場合。
GP_LARGEが通信モードとして指定され、OPTNAV がプロトコルオプションとして指定されている場合。
GP_LARGEが通信モードとして指定され、UDPがEthernet通信のタイプとして指定されている場合。
GP_LARGEが通信モードとして指定され、nStartPortまたはnEndPortが1でない場合。
命令が割り込みプログラム内で実行された場合。
nStartPort > nEndPortの場合。
ユーザーコネクション番号が許容範囲外の場合。
パラメータに指定された値が許容範囲外の場合。
同じキーワードを2回以上指定した場合。
ポート番号が無効な場合。
文字列データが256文字を超えた場合。
オープン中のコネクションがある場合。
自動的にオープンする設定のコネクションがある場合。
nStartPortとnEndPortによって指定される範囲内の1つ以上のユーザーコネクションが、既存のサーバーコンフィグレーションに属している場合。
GP_LARGEが通信モードとして指定され、OPTNAV がプロトコルオプションとして指定されている場合。
GP_LARGEが通信モードとして指定され、UDPがEthernet通信のタイプとして指定されている場合。
GP_LARGEが通信モードとして指定され、nStartPortまたはnEndPortが1でない場合。
命令が割り込みプログラム内で実行された場合。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
bSetConnection: BOOL:=FALSE;
bOpenConnection: BOOL:=FALSE;
bCloseConnection: BOOL:=FALSE;
END_VAR
変数bSetConnectionがFALSEからTRUEに変化し、システム変数sys_bIsEthernetInitializingがTRUEでないとき、ファンクションが実行されます。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VARIN,,'GP~OPTNAV~SV~AUTO~UDP',30,2,32,4,);
B(B_VARIN,,'PORT=9000~DISCONT=0',30,3,32,5,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_1,30,4,32,6,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_13,30,5,32,7,);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,1,17,3,N);
B(B_CONTACT,,bSetConnection,5,1,7,3,R);
B(B_VAROUT,,bError,48,2,50,4,);
B(B_F,FP_ETHERNET_CONNECTION_SET!,,32,0,48,7,,?DEN?DsMode?DsAddress?DnStartPort?DnEndPort?AENO?CbError);
L(17,2,32,2);
L(1,2,5,2);
L(7,2,15,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing Then
FP_ETHERNET_CONNECTION_SET(sMode := 'GP,OPTNAV,SV,AUTO,UDP',
sAddress := 'PORT=9000,DISCONT=0,BUFTOP=DT10000,BUFSIZE=100',
nStartPort := SYS_ETHERNET_USER_CONNECTION_1,
nEndPort := SYS_ETHERNET_USER_CONNECTION_13);
END_IF;