前言:
眼前咱们对“把一些算法封装到dll中的方法”大致比较着重,你们都需要分析一些“把一些算法封装到dll中的方法”的相关资讯。那么小编同时在网上收集了一些对于“把一些算法封装到dll中的方法””的相关知识,希望姐妹们能喜欢,看官们快快来学习一下吧!前几天我在微头条发过一个关于软件调试技巧的说明,今天在这里我来总结下我常用过的方法。
工业自动化领域软件开发,我这里统称为上位机软件开发,我们的软件应用在工业自动化领域,上位机软件需要连接很多的硬件设备,所以调试就需要在线调试了,但是在线调试的问题点比较多, 我来罗列下常用的方法。
最常规方法调试源代码
这是最常用的调试方式----安装软件编译环境,安装宇宙最强编译器VS。把你的源代码文件拷贝到工控机,直接连接各种硬件设备,比如相机、板卡、PLC等各种设备,如果你的源代码文件有各种其他第三方库文件,你都需要一一的去安装,这种方式比较麻烦,遇到有些很难安装的第三方库就闹心了。 这种方式虽然很方便,但是极其不安全,源代码文件在工控机上,一不注意导致代码信息泄露,以前我在现场调试的时候,在工控机上拷贝过其他家的源代码文件的,已经不止一次了。我们的笔记本不能插入U盘,不能拷贝文件,只有通过其他方法来解决调试问题。
本地的方法比较简单了,直接打断点,进入调试即可。
升级方法--远程调试源代码
在这里,我使用的方法是使用远程调试。
这得益于史上最强编译器VS提供的Remote Debugger ,安装每个版本的VS。
下面我一步一步来介绍。
Step1
Windows菜单找到Remote Debugger文件夹,根据你的exe或者dll编译的平台进行选择。拷贝此文件夹中的文件到工控机去
Step2
运行msvsmon.exe程序,设置参数。
Step3
拷贝你的可执行文件exe到工控机中,比如视觉软件,记住exe和pdb文件需要一一对应好,pdb保存的一些调试信息,运行exe软件。
Step4
笔记本电脑和工控机用网线连接,这里你需要把工控机的IP地址和笔记本的IP地址设置在同一网段
当笔记本和工控机设置好IP后,这个时候可以使用ping命令进行测试,他们是可以互通的
现在打开源代码sln解决方案,进入到VS编译源代码中,连接远程工控机的exe程序即可
在这里传输中选择 远程(无身份验证),限定符中直接填写远程的IP地址,这个时候会在可用进程中出现一些列的进程,比如你的进程名字是a.exe,那么双击附加到这个进程即可。
Step5
这一步,你只需要在你的本地笔记本电脑中打断点,当执行到这里的时候就会进入但本机笔记本电脑。
不管是远程调试还是本机调试,相机都有心跳,超过了设定的时间,SDK就断掉了相机,所以需要注意,最难受的是basler的相机,断点调试后要断电,否则需要等待很久。
注意,需要你把工控机的防火墙关闭!
这种方法显而易见,一方面可以避免安装各种环境,另一方面也可以保证源码的安装可控了!
dll调试
我们的上位机软件有时候会有很多模块,需要对一些模块的封装,可能有些dll是别人写的,也可能是自己封装的,如果是自己封装的,你把源代码文件加载到你的解决方案路径下即可,但是如果是别人的,你要跟他联调,就比较麻烦了,不过也是有方法的。
动态库是你写的
最直接的是你把源码的项目添加到exe程序的解决方案中
如果dll都在本机,并且源代码文件都在自己电脑上,那你就单独打开你的exe软件,把dll拷贝到exe可执行目录,这里需要dll和pdb对应好。
打开动态库的解决方案源代码文件,这里直接使用附加到进程,传输选择默认值,在可用进程中选择使用当前动态库的那个exe可执行程序。
动态库是你同事写的
如果你的动态库是别人写的,比如很重要的算法,是算法组的同事写的,源代码文件你没有权限给你看,但是dll里面又有问题,dll的源代码文件在他的电脑上。
这里参照 升级方法--远程调试源代码 方法,把他当成是工控机电脑进行配置,如果你们是使用的同一个内网,同一个域,IP地址写成他网络IP地址。
最难的调试U盘记录日志调试
我有遇到过一个项目,可以用变态形容,电脑不能带,软件可行性文件都是工厂的对接人带进去的,这种情况下调试就比较困难了, 我全程使用记录日志来调试软件,U盘让对接人带进去,一天进出一次, 这里就要求你把日志记录详细了,分析问题才能准确找到问题点!
有些同学说过用TeamViewer和QQ远程协助,这种是你帮别人调调软件参数还是比较方便的,但一般工厂环境下是没有网络的。
下一次我来给大家说说如何在工厂环境下没有网络,你想调试软件该如何操作。
欢迎大家关注我公众号,同步更新 VisionManMaster