병렬 인쇄 출력
트리거 EN이 TRUE이면 d에서 지정한 워드 출력을 통해 s_Start에서 지정한 6워드 영역에 저장된 12문자의 ASCII 코드를 출력합니다. 프린터가 d에서 지정한 출력에 연결된 경우, 출력 ASCII 코드에 해당하는 문자가 인쇄됩니다.
입력
ASCII 코드의 12바이트(6워드)를 저장하는 시작 16비트 영역(소스)
출력
ASCII 코드 출력에 사용되는 워드 출력(대상)
d의 비트 위치 0~8만 실제 인쇄에 사용됩니다. ASCII 코드는 시작 영역의 하위 바이트 시작 순서대로 출력됩니다. 1문자 정수 출력에 스캔 3회가 필요합니다. 따라서 모든 문자 정수가 출력되려면 37스캔이 필요합니다.
한 번의 스캔에 여러 F147_PR 명령을 실행할 수 없으므로, 인쇄 플래그 sys_bIsActive_F147_PR을 사용하여 동시 실행을 방지합니다. 문자 정수가 ASCII 코드로 변환되면 F95_ASC 명령을 사용하는 것이 좋습니다.
저장 ASCII 코드의 끝 영역이 제한을 초과하는 경우
F147_PR 명령 하나가 실행되는 동안 다른 F147_PR 명령 트리거가 TRUE로 전환된 경우
저장 ASCII 코드의 끝 영역이 제한을 초과하는 경우
F147_PR 명령 하나가 실행되는 동안 다른 F147_PR 명령 트리거가 TRUE로 전환된 경우
글로벌 변수 리스트에서 프로젝트의 모든 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
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
IF DF(start) OR PrintOutFlag then
F147_PR( Adr_Of_VarOffs( PrintOutString, 2), Printer);
END_IF;