SendCharacters

CPUまたはMCUポート経由での文字送信

この命令は、送信バッファにデータを書き込み、F159_MTRNを実行してデータを送信します。.送信するデータはsStringに割り付けられます。送信バッファは、SendBufferに割り付けられたVAR_IN_OUT変数です。bSuppressEndCodeTRUEに設定されているとき、システムレジスタで設定された終端コードは、送信文字列には付加されません。

命令SendCharactersAndClearStringとは異なり、sStringに割り付けられた文字列変数は変化しません。

パラメータ

入力

Port (WORD, INT, UINT)

通信ポートの指定(PLC機種による):

  • COMポート、例:SYS_COM0_PORT

  • Ethernetポート 例: SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU、例:16#xx01 (xx =スロット番号) COM01

sString (STRING)

送信文字列を格納

bSuppressEndCode (BOOL)

システムレジスタで設定された終端コードは、送信文字列には付加されません。

入出力

SendBuffer (ANY)

送信文字列を一時的に格納

解説

指定されたバイト数の送信が完了したとき、"送信完了フラグ"がTRUEになります。新しいデータを送信または受信できます。送信命令によって"送信完了"フラグがFALSEになると、データを受信することはできません。"送信完了"フラグの確認は、例えばブロードキャストメッセージのように応答がない場合に利用することができます。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • MCUユニットが指定されたスロットに存在しないとき、または0バイトを送信する必要があるとき

  • MEWTOCOL-COMマスタ/スレーブモードで、16#8000が指定されているとき

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • MCUユニットが指定されたスロットに存在しないとき、または0バイトを送信する必要があるとき

  • MEWTOCOL-COMマスタ/スレーブモードで、16#8000が指定されているとき

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		bSend: BOOL:=FALSE;
			(*activates function*)
		sSendData: STRING[30]:='ABCDEFGH';
			(*up to 30 chars*)
		awSendBuffer: ARRAY [0..15] OF WORD:=[16(0)];
			(*for 30 chars + 1 word*)
		bSuppressEndCode: BOOL:=FALSE;
	END_VAR

LDボディ

bSendFALSEからTRUEに変わると、この命令は、sSendDataの文字列をMCUポート1から送信します。文字は配列awSendBufferにコピーされます。送信する文字数に応じて、awSendBuffer[0]が確保されます。

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_CONTACT,,bSend,9,1,11,3,R);
B(B_VARIN,,1,11,2,13,4,);
B(B_VARIN,,sSendData,11,3,13,5,);
B(B_VARIN,,awSendBuffer,11,5,13,7,);
B(B_VARIN,,bSuppressEndCode,11,4,13,6,);
B(B_F,E_SendCharacters!,,13,0,24,7,,?DEN?DPort?DsString?DbSuppressEndCode?DSendBuffer?ASendBuffer?AENO);
L(1,2,9,2);
L(11,2,13,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

if (DF(bSend)) then
    SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;

最終修正日: 2022-04-21このページに関するフィードバックお問い合わせ窓口