適用范圍
Honeywell Fiji平臺打印機
解決方案
在項目中,會有多個打印模板需要通過PLC發送給打印機打印的情況,這時我們可以通過Layout方式將用模板提前編輯好下載到打印機的內存(Flash)中,再通過PLC發送有調用指定打印模板并發送模板對應需要的變量信息數據給打印機打印出對應的標簽。
01
具體方法如下:
01
將打印機的打印模式設置為Direct Protocol方式。
02
若打印內容里有中文內容,需要將打印模板需要調用到的中文字體下載到打印機,下載的中文字體文件必須是TTF (True Type Font)字體文件。
通過PrintSet軟件與打印機進行連接,連接后可以使用找所需要下載字體打印機的字體選項,鼠標右鍵盤單擊選擇添加字體,
選擇彈出來添加字體窗口選擇瀏覽選擇需要下載的字體后,按添加按鈕。
將字體添加到字體列表后,再選擇菜單欄的工具—應用 或直接使點工具欄的應用圖表,將字體保存到打印機。
03
編寫Layout模板,可使用記事本進行編輯,存入模板內容以及相關DP指令含義如下:
SYSVAR(43)=1
(//這里必須先使用SYSVAR(43)=1 來開啟路徑解析)
INPUT ON
FORMAT INPUT “#”,“@”,“&”
(// 表示模板中變量填充時使用分隔符以#開始,@結尾,使用&將變量填充的內容連接起來。)
LAYOUT INPUT “/c/Label1”
(//將模板存入到打印機的c盤中模板名為Label1)
PP174,1125:AN7
NASC 8
(//表示使用UTF-8中文格式)
FT “MHeiGB18030C-Medium”
(// 調用中文字體名稱)
FONTSIZE 48
FONTSLANT 0
PT “物資抽檢”
PP206,824:BARSET “QRCODE”,1,1,23,2,1
PB VAR1$
(// 變量名VAR1$)
PP741,701:FONTSIZE 26
PT “取樣日期:”
PP758,554:FONTSIZE 22
PT VAR2$
(// 變量名VAR2$)
PP229,327:FONTSIZE 20
PT VAR3$
( // 變量名VAR3$)
PP10,916:AN1
PL1199,9
LAYOUT END
( // 表示該模板內容結結束)
INPUT OFF
將上述DP指令內容,保存為UTF-8編號格式的文件,再通過對應打印機驅動程序的打印機屬性窗口—》工具選項—》操作—》將文件發送到打印機或者用TCP/串口調試工具軟件將保存的文件以文件的方式發送給打印機自動保存。
04
PLC 調用模板打印指令模板內容如下:
SYSVAR(43)=1
( //這里必須先使用SYSVAR(43)=1 來開啟路徑解析)
INPUT ON
FORMAT INPUT “#”,“@”,“&”
LAYOUT RUN “/c/Label1”
(//--- 調用存在打印機c盤中模板名為Label1的模板)
#HNZLA120090018&2021-09-11&HNZLA120090018&@
(// # 為開始符號,告訴打印機什么時候開始是變量數據,&是將VAR1和VAR2和 VAR3的變量數據連接起來一起發送,@是結束符號。)
PF
INPUT OFF
上述DP指令內容需要在每行的末尾添加回車或回車換行,不同的PLC品牌的PLC回車換行可能不一樣,如西門子S7-1200,添加回車換行使用&R&L或是Hex 0D 0A ,
02
在項目應用中,有的打印機沒有使用工業GPIO卡與PLC進行通訊,不會及時知道打印機當前運行狀態,又想在PLC在發送打印任務之前知道Honeywell Fiji平臺打印機查詢當前打印機狀態,如:打印否缺紙,缺碳帶、打印頭抬起等等,這時可以使用PLC向打印發送 “? PRSTAT”命令來獲取打印機當前狀態(反饋狀態見表一)。但當打印機在打印過程中出現打印機缺紙或打印機缺碳帶時,有時通過通過PLC向打印發送 “? PRSTAT”命令到打印機可能獲取打印機當前狀態還是為空,或是不能接收到打印機返回的值,若這時PLC打印機發送打印機作業,此時打印機不會響應。
這時可以使用以下FP/DP指令方法來獲取打印機的當前狀態信息。
INPUT ON
SYSVAR(48)=2
^q
查詢打印機狀態反饋如下(SYSVAR(48)=2為多通道輪詢, SYSVAR(48)=1為當前通道查詢):
反饋內容如下:
cnt:1left:0prstat:0pause:0errno:1022recbuf:8191
其中:
cnt:表示當前打印作業中要打印的標簽總數
left:表示當前打印作業中剩余的標簽總數
prstat:表示當前打印機的prstat狀值(見表一)
pause:當前打印作業通過控制面板或是命令暫停為值為1,否則為0
errno:在FP/DP指令中出現的錯誤代碼
recbuf:表示接收緩沖區中剩余的字符數
下表是“?PRSTAT” 或通過 “^q”指令來反饋PRSTAT狀態值如下:
狀態值狀態描述
0正常
1打印頭抬起
2已打印的標簽未被取走。
4沒有檢測到標簽
8TTR模式沒有裝碳帶或DT模式裝了碳帶
16打印頭過熱
32打印機正在走紙
64預留位,
其中在PX240或PX940表示前臂打開。
128紙張用盡
表一
注意:返回的當前打印狀態,在打印機打印頭抬起且沒有紙時,打印機會反饋值5,這個值是由打印頭抬起(值為1)+ 沒有檢測到標簽(值為4)相加得到的5。再如若打印機檢測到沒有碳帶(值為8)且人為將打印機打印頭抬起(值為1)將返回9的值
總結
通過將Layout方式將用模板提前編輯好下載到打印機的內存(Flash)中,再通過PLC發送有調用指定打印模板并發送模板對應需要的變量信息數據給打印機打印出對應的標簽。
當打印機沒有使用GPIO與PLC對接時在發送打印業時,可以通過PLC先向打印機發送查詢打印機當前打印狀態,再根據打印機返回的狀態值進行判斷,如打印機返回的prstat狀態為0時,PLC再發送調用所對應的模板和變量內容到打印機進行打印??捎糜谝恍┡cPLC需要打印機反饋少量的狀態信息反饋對接的簡單應用。若要實現PLC對打印機實現更多的反饋信息如開始打印,打印完成等狀態或控制打印機相關操作建議打印機加上GPIO卡和PLC對接。
責任編輯:haq
-
plc
+關注
關注
5008文章
13150瀏覽量
462059 -
打印機
+關注
關注
10文章
762瀏覽量
45579
原文標題:技術分享丨Honeywell Fiji平臺打印機與PLC對接應用
文章出處:【微信號:霍尼韋爾傳感智聯,微信公眾號:霍尼韋爾傳感智聯與智能倉儲】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論