2

全部!

我正在尝试运行程序来控制步进电机。我已经安装的 PC 和软件以及步进电机控制器已经很旧了,而且我对我在这里所做的几乎所有事情都是新手——边做边学。我在 Matlab 中“编码”了一点,所以我有一个非常基本的编码逻辑水平,但基本上不了解任何常用语法。所以,我知道一些关于步进器和步进控制器的知识,但其他的不多!

我有一个名为“Hoop.exe”的程序,当我运行该程序时,我正在尝试修改它以降低其中一个步进器的速度(我只需要将 300 更改为 200!)。软盘上还有一个相关的(假设的)hoop.bas 和一个 hoop.txt 文件。通过查看 txt 文件,它看起来像是我见过的基本示例中的基本代码。我在 Windows 98 上使用 Visual Basic 2.0 和 qbasic 1.1。

所以,我尝试先用 qbasic 和 vb 打开 hoop.bas 文件。使用 qb,我收到“错误文件模式”消息。使用 vb,我得到“无效的文件格式”,它似乎要我打开一个 mak 文件,但我没有“hoop.mak”。我这样做是想我可以用vb或qb打开bas文件,然后编辑它,然后将其保存为exe,然后运行它。

我找到了一个 pdf,它展示了如何将 qb 文件合并到 vb 的命令按钮中,我尝试了一下。但是,我在第一行收到“预期:语句结束”错误!当我尝试将其保存为 exe 时。

所以,我真正想做的就是改变我的 hoop.exe。我会假设由于 qb 和 vb 都在 PC 上,其中一个写了 bas(也许不是!),所以我想知道为什么他们都不能阅读它。

我从未使用过 vb 或 qb,但如果我必须深入了解细节,我似乎更愿意使用 qbasic,因为我以前从未使用过图形界面进行编码。但是,为了做我想做的事,其中之一是必要的吗?(我将需要编写一些程序来控制这些步进器,当一切都说完了,但我认为我应该一次迈出一步。)

我尝试了某种形式的复制和粘贴到 qb 中,但我无法立即弄清楚如何做到这一点。(可能是因为我不知道如何使用 qb。)

那么,修改我的箍程序最有效的方法是什么?

如果答案是我只需要用 qb 学习基础知识,那很好,但我想在我付出那么多努力之前从知道他们在说什么的人那里得到某种指示。

我真的很感激任何指示,因为我自己显然完全一无所知!

2013 年 8 月 10 日:

以防万一,以下是我打开的 Hoop.txt 中的一些行:

10 CLS:清除 1000:P = 512

20 定位 , , 1

100 A% = INKEY$:打印 A$;

105 如果 A$ = "*" 那么转到 700

110 GOSUB 510:GOSUB 610:转到 100

500 快速移动

第510章

等等。这是允许我与电机控制器对话的接口代码的开始

4

2 回答 2

2

QuickBASIC 和 Visual Basic 是非常不同的,尽管它们的通用名称是“BASIC”并且尽管它们都是由 Microsoft 制造的。首先您需要确定.BAS 文件是QuickBASIC 还是Visual Basic。一种简单快捷的方法(虽然不是最准确的)是在记事本或其他文本编辑器中打开文件。如果“OPEN”或“LEN”或“MID”或“CLOSE”等关键字是大写的,则它更可能是 QuickBASIC 文件。如果关键字看起来更像“Open”或“Close”或“Len”或“Mid”,那么它更可能是 Visual Basic 文件。

现在请记住,已经开发了其他版本的 BASIC,例如 Turbo BASIC(Borland 的版本)或 GW-BASIC 或 BasicA 或 PowerBASIC,甚至是 Color Basic。

现在,如果您无法以这种方式解决问题,那么我建议您下载一个十六进制编辑器,例如XVI32(尽管还有许多其他免费的)。查看文件(尤其是在文件末尾),通常有迹象表明使用了哪种编译器。您可能会看到“Microsoft Basic Compiler”或“Borland Turbo Compiler”字样。通常在文件的末尾,有编译器或链接器放入的字符串“存根”,您可以使用它们来确定编译器。

如果所有这些都失败了,而您很绝望,并且“300”数字在程序中被硬编码,您需要更改它,那么还有另一种方法可以做到这一点。首先备份你原来的exe文件。然后使用 XVI32 或其他一些十六进制编辑器并搜索字符串“2c01”(300 是 012c 十六进制,您需要颠倒 01 和 2c,因为 Intel 机器是 little-endian)。找到 2c01 的实例后,将其更改为“c800”(200 为 00c8。Little Endian 版本为 c800)。保存文件,然后重新运行它。这是解决此问题的可怕尝试和错误方法。如果从 300 改为 200,那么一切都很好!如果没有,请从备份中恢复并重试!

于 2013-08-01T22:28:36.410 回答
1

您是否考虑过购买 Arduino或其他低成本且友好的电子开发平台?我认为这将是您控制步进电机的方法......看看:

http://arduino.cc/en/Tutorial/StepperUnipolar

如果你用谷歌搜索,你会发现大量的电子管视频展示了一些 arduino 控制的东西。

在我看来,修改您当前的 .exe 似乎是一条太长且难以遵循的路径,而不是制作您自己的正确源代码来实现您想要的,因为您需要反汇编可执行文件并从字面上“知道你在做什么”用所有的汇编语言来找到用正确的值修补二进制文件的地方。

无论如何,如果您发布旧硬件的图片或示意图,我可以尝试为您提供更多帮助,但我想这更适合这个其他堆栈交换站点: http ://electronics.stackexchange.com

于 2013-08-01T22:05:20.310 回答