【问题标题】:VBA binary file - cnc programVBA 二进制文件 - cnc 程序
【发布时间】:2017-11-18 18:35:50
【问题描述】:

我正在使用宏来创建 CNC 程序。
要创建机器正在使用的“.spf”文件,我使用:

Dim m2_path as string
m2_path = T:\Production\Cavity-Line\Eric R\Excel\PARAMETER.spf

Dim text as string
text = 'my data

Dim fso As Object
Dim Fileout As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set Fileout = fso.CreateTextFile(m2_path, True, True)
Fileout.Write text
Fileout.Close

当我尝试在机器上打开程序时,出现“无法打开二进制文件”错误。
但是如果我手动将“m2_path”文件中的内容复制到另一个文件中,然后尝试打开它,我不会收到错误消息。

文本文件的格式有问题吗?

机器正在使用 SINUMERIK 840d sl。

提前致谢
问候

编辑:
感谢@ashleedawg

【问题讨论】:

  • 缺少的第一件事是路径周围的双引号。而且,我收集机器是期望一个文本文件?
  • 修复了这个问题。是的,以 .spf 结尾。 (文件格式)
  • 你看过this document的第29页吗?
  • 请您或@ashleedawg 将答案发布为答案并将其从问题中删除。当需要 UTF-8 时,是否取决于使用 ANSI 编码编写文本(仅适用于 C0 Controls and Basic Latin 块中的字符)?
  • @rosi97 -- 如果现在对您有用,请随时“接受”我的回答(在左侧下方带有复选标记),这是我根据 Tom 的要求从您的编辑中移出的。祝CNC好运! (巧合的是,大约 50 年前,我的叔叔在柏林为西门子的第一台 PLC 和 CNC 工作。)

标签: excel vba text-files createobject cnc


【解决方案1】:

很高兴听到您的更改取得了成功:

发件人:

Set Fileout = fso.CreateTextFile(m2_path, True, True) 

到:

Set Fileout = fso.CreateTextFile(m2_path, True, False)

创建一个 ASCII 文件而不是 Unicode(它不能被 机器)。

参考Siemens SINUMERIK 840D sl CNC Software 2.6 SP1 HF4 Installation/Operating Manual, Page 29

可以使用 SINUMERIK Operate Editor 编辑文本文件,如果 文本文件使用 LF 字符 (0aH) 或字符串 CRLF (0d0aH) 作为块标识符的行或结尾。编辑器打不开 二进制文件。 ... 从 SINUMERIK 新生成的文件 操作编辑器是 UTF-8 编码的 - 并以 LF 字符作为结尾 块标识符。对于 UTF-8 编码的文件,所有特殊字符都是 正确显示。打开文件时,SINUMERIK Operate Editor 假定文件是 UTF-8 编码的。如果文件具有其他编码 被打开,例如使用 Windows 页面编码,然后是特殊字符 仅当 SINUMERIK Operate 已更改时才能正确显示 到适当的系统语言。这也涉及例如文件 是使用 HMI 高级编辑器生成的。当打开 SINUMERIK Operate Editor,此类文件的编码不会改变。 没有自动转换为 UTF-8 编码。如果文件我们重新 使用外部编辑器生成或处理(例如,记事本下 Windows)而不是 SINUMERIK Operate Editor,则应注意 该文件已保存,UTF-8 编码。使用记事本时,以及 将文件保存为编码 在“另存为”对话框中选择“UTF-8” 盒子。如果不使用特殊字符,则“ANSI”也可以 指定为编码。

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多