F147_PR

プリントアウト

実行条件ENTRUEのとき、s_Startで指定した6ワードのエリアに格納されている12文字分のアスキーコードを、dで指定するワード出力に出力します。プリンタがdで指定した出力に接続されていれば、アスキーコードに対応する文字が印刷されます。

パラメータ

入力

s_Start (WORD, INT, UINT)

12バイト(6ワード)アスキーコードを格納する先頭16ビットエリア

出力

d (WORD)

アスキーコードを出力するワード出力

解説

  • 実際の印刷には、dのBit no. 0~8の出力のみを使用します。アスキーコードは、開始エリアの下位バイトから順に出力されます。1文字定数の出力には、3スキャン必要です。従って、全文字定数の出力には37スキャン必要です。

  • 複数のF147_PR命令を同時に実行することはできません。プリント命令実行中フラグsys_bIsActive_F147_PRを使用して、同時に実行することがないようにプログラムしてください。文字定数をアスキーコードに変換するときは、F95_ASC命令の使用をおすすめします。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • アスキーコードを格納する終端エリアが範囲を超えるときON

  • F147_PR命令を実行中に、別のF147_PR命令の実行条件がTRUEになったときON

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • アスキーコードを格納する終端エリアが範囲を超えるときON

  • F147_PR命令を実行中に、別のF147_PR命令の実行条件がTRUEになったときON

接続例

  1.  (1) トランジスタ出力タイプ(出力: 9点以上)
  2.  (2) プリンタ(セントロニクスインターフェイス)

グローバル変数リスト

グローバル変数リストでは、プロジェクト内のすべてのPOUからアクセスできる変数を宣言します。

  1.  (1) 変換元: アスキーコード12文字A、B、C、D、E、F、G、H、I、J
  2.  (2) プリンタの制御コード
  3.  (3) アスキーコード
  4.  (4) start: ON
  5.  (5) 格納先
  6.  (6) Y9~YF: 未使用
  7.  (7) Y8: プリンタのストローブ信号
  8.  (8) Y0~YF: プリンタのデータ信号(Y0~YFはプリンタの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このページに関するフィードバックお問い合わせ窓口