大家好,欢迎来到IT知识分享网。
文章目录
1.前言
2.前期准备
3.创建CodeSys库工程
3.1.函数名必须包含_cext
3.2.生成m4、c文件
4.搭建编译环境,编译出动态库*.so
4.1.将ExtensionSDK文件夹拷贝到板子的一个目录中。
然后我将其拷贝到板子的一个目录下:
4.2.创建工程目录,且将前面生成的m4、c文件拷贝到这个工程目录下
4.3.执行make
cd 到myPrj目录,然后执行
make -f ../ExtensionSDK/makefile newproject
4.4.实现函数
4.5.执行编译
在对C文件进行实现后,便可以进行编译了。
make all
5.将*.so文件导入到库工程中
6. 将库工程另存为编译库
7.安装并使用编译好的库
#include "CmpStd.h" #include "CmpErrors.h" #include "CmpItf.h" #include "FileTransferDep.h" #include <string> void CDECL CDECL_EXT myfunction_cext(myfunction_cext_struct *p) {
using namespace cv; memcpy(p->b, "", 7); memcpy(p->c, "", 7); std::string aStr = p->a; aStr += "Hello World and ZY"; p->MyFunction_cext.a = 17909; memcpy(p->MyFunction_cext.b, aStr.c_str(), aStr.length() + 1); p->MyFunction_cext.c = 1.23456; cv::Mat mat(480, 640, CV_8UC1); imwrite("abcd.bmp", mat); cv::Mat img = imread("1.png"); imwrite("1_saved.png", img); }
可以看到,与预期效果一致。
而且在我们的板子上,可以看到刚才包含进来的库文件已经被上传到板子的特定文件夹中了:
8.结语
有了这个接口,只要我们对OpenCV、相机驱动库等进行封装,然后提供对应的操作函数给接口,就可以实现PLC的视觉检测功能。完美。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/135072.html