SendCharacters

CPU 또는 MCU 포트를 통해 문자 전송

이 명령은 데이터를 전송 버퍼에 쓰고 F159_MTRN을 실행하여 데이터를 전송합니다. 전송할 데이터는 sString에 적용됩니다. 전송 버퍼는 SendBuffer에 적용되는 VAR_IN_OUT 변수입니다. bSuppressEndCodeTRUE로 설정되면 시스템 레지스터에서 선택한 종료 코드는 전송 문자열에 추가되지 않습니다.

명령 SendCharactersAndClearString과는 대조적으로, sString에 적용된 문자열 변수는 변경되지 않습니다.

파라미터

입력

Port (WORD, INT, UINT)

PLC 기종에 따라 통신 포트를 지정합니다.

  • COM 포트(예: SYS_COM0_PORT)

  • 이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)

  • MCU/SCU(예: COM0116#xx01(xx = 슬롯 번호))

sString (STRING)

전송 문자열 저장

bSuppressEndCode (BOOL)

시스템 레지스터에서 선택한 종료 코드는 전송 문자열에 추가되지 않습니다.

입력/출력

SendBuffer (ANY)

전송 문자열을 임시로 저장합니다

주석

지정된 바이트 수가 전송되면 "transmission done" 플래그는 TRUE로 전환됩니다. 새 데이터를 전송 또는 수신할 수 있습니다. 모든 전송 명령은 "transmission done" 플래그를 FALSE로 전환하고 데이터를 수신할 수 없습니다. "transmission done" 플래그 평가는 응답을 기대할 수 없는 경우(예: 브로드캐스트 메시지)에 유용할 수 있습니다.

에러 플래그

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로 변경되면 명령은 MCU 포트 1을 통해 sSendData의 문자를 전송합니다. 문자는 배열 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-04이 페이지에 대한 피드백Panasonic 직통 전화