[介绍]
在这篇分享文档中,我将向大家介绍一个解决方案,帮助工程人员通过触摸屏连接打印机的方法。这种方法可以解决传统直接连接打印机的问题,尤其适用于已停产的直接连接打印机或需要使用网络共享打印机的情况。
[硬件设备]
- 1214 PLC
- TP900 触摸屏
- 普通PC
- Brother 公司的QL800标签打印机
[解决方案概述]
我们的解决方案基于以下原理:通过触摸屏写文件到PC机上的共享文件夹,然后利用批处理文件实现对共享文件夹的监控,一旦发现新的文件,即将其打印出来,并删除该文件。
[步骤]
1. 连接硬件设备:
- 将1214 PLC与TP900触摸屏通过网线连接。
- 将PC与标签打印机通过USB口连接。
2. 编写程序:
- 在PLC中创建一个数据块,用于存放打印所需数据。
- 在人机界面组态画面上添加数据显示和打印按钮,用于触发打印操作脚本netLog。
- 编写VBS脚本netLog,将相关数据写入一个文件并保存到PC的共享文件夹。
脚本代码如下:
Sub netLog()
'提示:
'从此位置起写入代码:
'初始化文件夹,文件名称
Dim fileName, folderName, fileLocation,sharefolder,backLocation
fileName = Year(Now()) & "_" & Month(Now()) & "_" & Day(Now()) & ".CSV"
folderName = "\\myComputer\logs\logs\"
fileLocation = folderName&fileName
'定义文件夹对象,文件对象
Dim fso,fctl
On Error Resume Next
Set fso = CreateObject("FileCtl.FileSystem")
'检查文件夹是否存在,如果没有则创建
If (fso.Dir(folderName))="" Then
ShowSystemAlarm "no such folder"
fso.MkDir folderName
Else
ShowSystemAlarm "Folder already exist"
End If
If Err.Number <> 0 Then
ShowSystemAlarm "Error#" & CStr(Err.Number)&"目录不存在 " & Err.Description
Err.Clear
End If
On Error Resume Next
Set fctl = CreateObject("FileCtl.File")
'打开文件对象
fctl.Open fileLocation,8
If Err.Number <> 0 Then
ShowSystemAlarm "Error#" & CStr(Err.Number)&" 缺少文件" & Err.Description
Err.Clear
End If
'定义记录位置
Dim currentPosition, nextPosition
currentPosition = fctl.Loc
nextPosition = fctl.Seek
'定义记录变量:记录号, 桶编号, 桶类型, 开始时间, 结束时间, 有效清洗时间, 电导率
fctl.LinePrint "记录号"
fctl.LinePrint SmartTags("show_logNo")
fctl.LinePrint "桶编号"
fctl.LinePrint SmartTags("show_drumCode")
fctl.LinePrint "桶类别"
fctl.LinePrint SmartTags("show_drumType")
fctl.LinePrint "起始时间"
fctl.LinePrint SmartTags("show_startTime")
fctl.LinePrint "结束时间"
fctl.LinePrint SmartTags("show_endTime")
fctl.LinePrint "清洗时间"
fctl.LinePrint SmartTags("show_rinseDuration")
fctl.LinePrint "电导率"
fctl.LinePrint SmartTags("show_finalCond")
'向文件添加变量
ShowSystemAlarm "打印已完成"
'关闭文件
fctl.Close
Set fso = Nothing
Set fctl = Nothing
End Sub
3. 创建共享文件夹:
- 在计算机名为myComputer的PC上创建一个共享文件夹,共享名称为logs,用于接收从触摸屏发送的文件。注意共享的权限为读和写,为了方便,此处设置为所有人可以共享。
4. 编写批处理文件:
- 打开文本编辑器,在新文件中输入以下代码(根据实际情况进行修改):
@echo off
REM 创建一个局部空间
setlocal enabledelayedexpansion
set "folder=D:\logs"
set "backupFolder=D:\PrintBack"
set "interval=5"
:loop
REM 检查文件夹是否有文件
dir "%folder%" >nul 2>&1
if errorlevel 1 (
echo No file exist。等待 %interval% 秒后重新检查...
) else (
REM 获取文件夹中的第一个文件
for /F "usebackq delims=" %%A in (`dir /B "%folder%"`) do (
echo new file: %%A
REM 等待指定的间隔时间
timeout /t %interval% >nul
REM 打印文档
echo printing...
start /min notepad /P "%folder%\%%A"
echo backup...
REM 等待指定的间隔时间
timeout /t %interval% >nul
move "%folder%\%%A" "%backupFolder%"
)
)
REM 等待指定的间隔时间
timeout /t %interval% >nul
REM 继续下一次循环
goto loop
5. 配置和测试:
- 根据您的实际路径和打印机名称,修改批处理文件中的变量。
- 保存批处理文件,并确保文件扩展名为 `.bat`。
- 打开命令提示符,进入保存批处理文件的目录,并运行批处理文件。
- 在触摸屏上操作并生成文件,观察是否能够自动打印。
[注意事项]
- 请确保硬件设备连接正确,并已正确配置相关驱动程序。
- 根据您使用的打印机,您可能需要安装额外的打印命令行工具或驱动程序。
- 请注意共享文件夹的权限设置,确保触摸屏和PC能够正常访问和写入文件夹。
[结论]
通过本解决方案,我们成功地实现了通过触摸屏连接打印机的目标。这种方法提供了一种替代方案,在无法直接连接打印机的情况下打印所需文件。
希望这个分享对大家有所帮助!如果您有任何问题或反馈,请随时与我联系。祝您使用愉快!