CodeSys组件编写
CodeSys(Controller Development System) 是一种功能强大的PLC软件编程工具,它支持IEC61131-3标准IL 、ST、 FBD 、LD、 CFC、 SFC 六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑子程序,功能模块等。目前,CodeSys在全世界范围内应用广泛,例如ABB、bachmann、Heesn、ifm、EPEC、Intercontrol等供应商都在使用该平台开发的编程软件。本篇文章简单的介绍Codesys的组件编写,具体内容如下:CodeSys lib库的编写
a).打开CodeSys软件,新建lib库工程;
b).新建add函数接口 a+b=c的功能;
c).定义输入变量;
d).双击“工程信息”,编辑lib的属性;
e).编译检查add函数的正确性;
f).鼠标右键点击“cmpAdd(FUN)”,在出现的下拉菜单中选择“属性”选项,在弹出的对话框中将勾选“外部实现”,将cmpadd实现更改为外部C“cmpAdd(FUN)(EXT)”;
g).菜单栏点击“编译”选项,在出现的下拉菜单中选择“生成运行时系统文件...”,在弹出的对话框中勾选中“M4接口文件”和“C根文件”,生成外部C函数;
结果显示:
外部 C函数的编写
a).复制“CmpTemplateEmpty”,将目录名称修改为“cmpAdd”,修改目录中的文件名,修改之后结果如下;
b).“cmpAddDep_m4.bat”和“cmpAddItf_m4.bat”文件中的“CmpTemplateEmpty”全部替换成“cmpAdd”;打开建立lib库时生成的C文件,将函数(如图所示):
复制到 “CmpTemplateEmpty” 目录中的 “cmpAdd.c” 文件的末尾;使用建立lib库时生成的m4文件替换掉 “CmpTemplateEmpty” 目录中的 “cmpAddItf.m4” 文件;将 “cmpAddDep.m4” 文件中的 “CmpTemplateEmpty” 全部替换成“cmpAdd”,将文件中的设备地址 “COMPONENT_VENDORID('0x0001')” ,修改为自己的设备('0x16b0');
c).使用鼠标左键双击 “cmpAddDep_m4.bat” 和 “cmpAddItf_m4.bat” 文件自动生成 “cmpAddDep.h” 和 “cmpAddItf.h” 文件;
d).在Source Insight 3软件中编写“cmpAdd”函数,最终结果如下图;
CodeSys测试lib库的工程
a).打开CodeSys软件,新建测试工程;
b).在lib工程中点击(),将lib库装入;
c).在新建的测试工程中双击(),点击(),在()中找到新建的lib,点击确定;
d).新建POU程序,调用lib里的cmpadd函数;
组件编译
a).将“cmpAdd”组件复制到Linux中;
b).打开组件中的“Makefile”文件,修改名称、路径以及GCC编译环境,结果如下图所示;
Make编译之后生成(
);
组件测试
a).将Linux上的“nfsroot”目录挂载到ARM开发板上的“/nfsdir”目录;
注意:Linux和ARM开发板需要在同一网段。
b).将“libcmpAdd.so”文件复制到“/usr/lib”目录下;
c).进入“/Platforms/Linux/Bin”目录;
在“CODESYSControl.cfg”文件中添加“cmpAdd”库;
d).运行“codesyscontrol”;
查看打印的信息,确定组件已经添加;
e).运行测试例程,查看运行。
CmpTemplateEmpty在哪能找到?除了linx系统,可能对window系统的情况也说明一下。 学习了谢谢
同问,CmpTemplateEmpty 哪里有 woodrow_wang 发表于 2020-8-12 04:35
同问,CmpTemplateEmpty 哪里有
Codesys给的开发包里面就有。 学到了学到了 能不能发一下CmpTemplateEmpty ,邮箱:Duankay_Lee@163.com,不胜感激。
页:
[1]