F147_PR

병렬 인쇄 출력

트리거 ENTRUE이면 d에서 지정한 워드 출력을 통해 s_Start에서 지정한 6워드 영역에 저장된 12문자의 ASCII 코드를 출력합니다. 프린터가 d에서 지정한 출력에 연결된 경우, 출력 ASCII 코드에 해당하는 문자가 인쇄됩니다.

파라미터

입력

s_Start (WORD, INT, UINT)

ASCII 코드의 12바이트(6워드)를 저장하는 시작 16비트 영역(소스)

출력

d (WORD)

ASCII 코드 출력에 사용되는 워드 출력(대상)

주석

  • d의 비트 위치 0~8만 실제 인쇄에 사용됩니다. ASCII 코드는 시작 영역의 하위 바이트 시작 순서대로 출력됩니다. 1문자 정수 출력에 스캔 3회가 필요합니다. 따라서 모든 문자 정수가 출력되려면 37스캔이 필요합니다.

  • 한 번의 스캔에 여러 F147_PR 명령을 실행할 수 없으므로, 인쇄 플래그 sys_bIsActive_F147_PR을 사용하여 동시 실행을 방지합니다. 문자 정수가 ASCII 코드로 변환되면 F95_ASC 명령을 사용하는 것이 좋습니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 저장 ASCII 코드의 끝 영역이 제한을 초과하는 경우

  • F147_PR 명령 하나가 실행되는 동안 다른 F147_PR 명령 트리거가 TRUE로 전환된 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 저장 ASCII 코드의 끝 영역이 제한을 초과하는 경우

  • F147_PR 명령 하나가 실행되는 동안 다른 F147_PR 명령 트리거가 TRUE로 전환된 경우

연결 예

  1.  (1) 트랜지스터 출력 형식(출력: 9포인트 이상)
  2.  (2) 프린터(센트로닉스 인터페이스)

글로벌 변수

글로벌 변수 리스트에서 프로젝트의 모든 POU에서 액세스할 수 있는 변수를 정의합니다.

  1.  (1) 소스: 12문자 A, B, C, D, E, F, G, H, I, J의 ASCII 코드
  2.  (2) 프린터 제어 데이터
  3.  (3) ASCII 코드
  4.  (4) 시작: ON
  5.  (5) 대상
  6.  (6) Y9~YF: 사용 안 함
  7.  (7) Y8: 프린터의 스트로브 신호용
  8.  (8) Y0~YF: 프린터 데이터 신호용(Y0~Y7은 프린터의 DA A1~DA A8에 해당)

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		Start: BOOL:=FALSE;
	END_VAR
	VAR_EXTERNAL
		PrintOutFlag: BOOL:=FALSE;
	END_VAR
	VAR 
		PrintOutString: STRING[12]:='ABCDEFGHIJ$L$R';
	END_VAR
	VAR_EXTERNAL
		Printer: WORD:=0;
	END_VAR
	VAR 
		@'': @'';
	END_VAR

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 13 ;
        NETWORK_BODY
B(B_CONTACT,,Start,4,2,6,4,R);
B(B_F,F147_PR!,Instance,19,1,25,5,,?DEN?Ds_Start?AENO?Cd);
B(B_CONTACT,,PrintOutFlag,4,5,6,7,);
B(B_VAROUT,,Printer,25,3,27,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,9,7,18,11,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,2,7,9,9,11,);
B(B_VARIN,,PrintOutString,7,8,9,10,);
L(1,3,4,3);
L(6,3,19,3);
L(1,6,4,6);
L(6,6,10,6);
L(10,3,10,6);
L(19,4,19,9);
L(18,9,19,9);
L(1,0,1,13);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF DF(start) OR PrintOutFlag then
    F147_PR( Adr_Of_VarOffs( PrintOutString, 2), Printer);
END_IF;

최종 수정일: 2022-02-01이 페이지에 대한 피드백Panasonic 직통 전화