如何使用Codesys编程

news2024/11/27 6:40:34

在实际项目中,使用了两套TLC6伺服系统,不仅是因为TLC6具有电子凸轮功能,而且TLC6伺服驱动器内置PLC,使实现系统功能的编程更简单方便,且由于是内部编程,使系统响应更迅速。 TLC6内置PLC的编程环境为符合IEC61131-3标准的Codesys编程语言。

如何建立一个Codesys项目

新建项目(主程序)  当您在电脑上安装好Codesys软件后,Target_TLC6的安装是必须的,否则将不能对TLC6伺服系统进行控制。 Target_TLC6安装完成之后,打开Codesys软件,按“新建”按钮,弹出如下图1所示的窗口,选择“TLC6xx”,点击“OK”弹出如图2所示窗口,在此处输入主程序名,并选择您喜欢的语言格式(包括梯形图,结构化文本,功能块图表等),点击“OK”完成主程序建立。

中断程序的创建和任务的配置

        由于负责横封动作的TLC6伺服系统是通过电子凸轮功能跟随拉膜伺服电机的,但实际上,皮带拉膜会产生打滑现象,引起生产误差,所以需要TLC6在跟踪的同时以包装袋上的色标为信号启动两套TLC6伺服系统的补偿功能,实现对误差的补偿。补偿功能在中断程序中实现,以保证补偿的快速性和可靠性。

在主程序建立的基础上,右键弹出窗口选择“Add Object…”,窗口中输入中断程序名,选择编程语言格式,中断程序创建完成。

主程序和中断程序建立完成之后,点击屏幕左下角的“Resources”页,进行任务配置。如图5所示在系统事件中右键插入任务,在图6中输入任务名,并选择“freewheeling”,即循环扫描方式。

 任务建立完成之后,如图7右键选择添加程序调用,在图8中选择用户定义程序,点击“OK”即可。

     以同样的方式添加中断任务,如图9,输入中断任务名,单击选项按钮外部事件触发“triggered by external event”,并选择“TLC6_EVENT_CAP1”。然后在中断任务下添加中断程序调用,如图10,即完成整个的任务配置。

添加库文件

 由于初始的Codesys库文件只有一个标准库文件,所以要在库文件管理器中添加运动控制库文件。同样在“Resources”页中,打开“Library Manager”,右键添加库文件,如图11。选“TLC6_MotionLocal_V3002.lib”,如图12完成库文件添加。

如何在Codesys中编写程序(以结构文本语言为例)

  1. 在程序中添加功能块

        在程序窗口如图13中右键,选择“Input Assistant…”,弹出如图14窗口,在左侧对话框中选择标准功能块“Standard Function Blocks”,然后在右侧对话框中点击您要选择的功能块,图14举例选择说明电机“使能”的功能块,点击“OK”后如图15,即可在功能语句中输入变量和数值。如对此功能块有疑问,可用鼠标选择“功能块名”,然后按“F1”帮助。以下程序中出现的所有功能块都用此方法实现。

      程序流程 主程序的内容依次是:电机的使能,数据的设置(如,袋长,切刀位置等参数),寻原点,启动电子凸轮,使能电子凸轮。中断程序即是在每次获得色标信号后做:电子凸轮设参考点,以及电子凸轮的补偿。流程图如图16。

3.寻原点的编程

home1(uiAxis:=1 , bExecute:=I_0 , uiType:=7 , diSetPos:=0 , diVHome:=200 , diVOutHome:=200 , udiPOutHome:=0 , udiPDisHome:=0 , bBusy=>busy,bDone=>homeok );

       此段程序表示,在外部输入点“I_0”信号给出时,伺服电机以200rpm速度寻找原点,寻原点类型为7(可参考帮助文件),“7”代表以“REF”信号和零点脉冲两个信号作为寻原点依据。当寻原点结束后,变量“homeok”跳变到1,作为下面程序的启动信号。

4.电子凸轮功能的编程

IF (homeok) THEN (*判断寻原点是否结束*)

write_object(1, 53,1, 1);(*启动电子凸轮功能*)

END_IF;

encam:=blockstate =257; (*当电子凸轮状态为257时,可以进行下一步-使能电子凸轮*)

trigcam(CLK:=encam , Q=>startcam );

IF(startcam) THEN

        write_object(1, 52,1, 1);(*使能电子凸轮*)

END_IF;

blockstate:=read_object(1, 53, 2);(*读取电子凸轮状态*)

refe1:=blockstate;

5.主程序中中断的触发编程

        在TLC6伺服驱动器上有Capture1和Capture2两个捕捉输入点,可同时使用,此项目中只使用了Capture1输入端子。

(*使能Capture1事件*)

IF(Flag=0) THEN

Event:=event_enable(16#08); (*使能Capture1事件*)

        Flag:=1;

END_IF;

(*capture1事件设置*)

event_set_cap1(1);(*Capture1任务触发*)

trig_signal_set(1,1,1,TRUE); (*选择触发信号*)

trig_start(1,1,TRUE, FALSE,FALSE, FALSE); (*设置位置捕捉内容*)

capture1_enable:=event_enabled(FALSE);

6.中断程序的编写

(*电子凸轮设参考点*)

IF(refe1 =513) THEN

        write_object(1, 52,12, 1);

END_IF;

(*读电子凸轮状态*)

camstate:=read_object(1, 52, 6);

couple:=camstate =2;

camcoupled:=camstate =4;

(*电子凸轮耦合*)

IF(couple) THEN

        write_object(1, 52,28, 1);

END_IF;

(*电子凸轮补偿*)

write_object(1,52,30,1);

write_object(1,52,31, compensate);    

(*使能下一次Capture1事件*)

event_enable(16#08);

四、通讯的设置以及程序的下载

1.通讯的设置

        在程序编写完成后,要设置PC和伺服驱动器连接的通讯参数。如图17,在“Online”选项中选择“Communication Parameters…”,弹出图18窗口,点击新建,选择“Serial (Rs232)”,参数设置如图19所示(通讯端口根据使用的PC设定)。

2.程序的连接、下载

         通讯参数设置完成后,同样在“Online”页中点击“Login”,如图19,完成与伺服驱动器的连接和程序的下载。如要求程序掉电保护,则在下载完程序后,选择“Create boot project”,按F5,程序即处于运行状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1146569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言--输出格式控制(printf函数)

格式输出函数printf printf(格式控制,输出表列) 基本用法 格式字符功能例子d输出一个有符号的十进制整数printf("%d %d",12,-56);c输出一个字符 char ch a; printf("%c",ch); s输出一个字符串printf("%s","oh my god&…

Go学习第十六章——Gin文件上传与下载

Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例(单文件)1.2 服务端保存文件的几种方式SaveUploadedFileCreateCopy 1.3 读取上传的文件1.4 多文件上传 2. 文件下载2.1 快速入门2.2 前后端模式下的文件下载2.3 中文乱码问题 1. 文件上传 1.1 …

年度最佳榜单之 10 大免费数据恢复软件

我们经常会因为不小心从硬盘驱动器、SD 卡和数码相机等存储设备中删除重要数据而丢失它们。还有许多其他原因,如格式化、病毒攻击和不当操作都可能导致数据丢失。在本文中,我向您推荐年度最佳数据恢复软件列表,以帮助恢复丢失的数据。 10 大免…

强大易于编辑的流程图组织图绘制工具draw.io Mac苹果中文版

draw.io可以绘制多种类型的图表,包括但不限于流程图、组织结构图、网络图、UML图、电气工程图等。draw.io提供了丰富的图形元素和编辑功能,使用户能够轻松地创建和编辑各种复杂的图表。同时,该软件还支持多种导出格式,方便用户在不…

Openssl数据安全传输平台017:客户端在Linux上的编译与调试

客户端代码在widows上编译,除了protobuf找不到目录,其他的基本没有什么问题。 然后打开虚拟机,项目文件已经在/home/projects目录下了 进入项目文件,对代码进行编译 第一次 // 找不到protobuf g *.cpp *.cc -ljson -lpthread -…

计算机中了locked勒索病毒怎么办,locked勒索病毒解密,数据恢复

当下网络技术飞速发展,但同样带来的网络安全威胁也不断增加,其中较为明显的威胁就是locked勒索病毒,自从今年以来,很多企业的计算机都遭受到了locked勒索病毒攻击,导致企业的计算机系统瘫痪。通过云天数据恢复工程师对…

【LeetCode每日一题合集】2023.10.23-2023.10.29(简单的一周)

文章目录 2678. 老人的数目(简单遍历模拟)1155. 掷骰子等于目标和的方法数(动态规划)2698. 求一个整数的惩罚数(预处理dfs回溯)2520. 统计能整除数字的位数(简单模拟)1465. 切割后面…

✨✨✨if __name__ == “__main__“ 在 Python 中意味着什么?

✨✨✨if __name__ "__main__" 在 Python 中意味着什么? 1. 原理2. 总结参考 在阅读其他人的代码时,你可能遇到过 Python 的 if__name__ “main” 习惯用法。这篇博客将了解有关 Python if name “main” 习惯用法的所有信息。 1. 原理 这…

linux 模块安装与卸载

文章目录 模块实现编译模块的 makefile编译报错解决模块编译日志自动化模块安装模块卸载 模块实现 新建 my_module.c 文件 #include <linux/types.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h>static int __ini…

python随手小练8(南农作业题)

题目1: 输入3 门课程 a,b,c 的成绩,求 3 门成绩的总和平均值(整数,四舍五人)以及最高和最低值。如果3门课程考试成绩分别以权重 0.50.3 和0.2计人总评成绩(整数先求总和再四舍五入),则最终总评成绩是多少? 具体操作&#xff1a; a float(input("a:")) b float(in…

基于Java的体育竞赛成绩管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

qt高精度定时器的使用停止线程应用

##线程停止 //线程停止应用 public: explicit WorkerThread(QObject *parent 0) :QThread(parent), m_bStopped(false){qDebug() << "Worker Thread : " << QThread::currentThreadId();}~WorkerThread(){stop();quit();wait();}void stop() {qDebug()…

JEnv使用初体验

Java多版本控制器初体验 1、前言 由于公司项目使用jdk8版本&#xff0c;而日常学习会使用其他版本例如jdk17等&#xff0c;往常都是修改环境配置目录实现。 2、下载资料 链接&#xff1a;https://pan.baidu.com/s/1UqzHv8K8WBu-75Ysyc_h3A 提取码&#xff1a;ra6a 3、安装 …

Java中的类你了解多少(每日一练)

文章目录 类的加载方式类的加载流程类的生命周期加载验证准备解析初始化类的销毁 类加载器有哪些什么是双亲委派模型&#xff1f; 类的加载方式 开发工具可以将java源代码编译为class字节码&#xff0c;类加载器加载class字节码&#xff0c;将字节码中的内容分配到内存中&#…

Go学习第十八章——Gin日志与第三方工具Logrus

Go web框架——Gin日志与第三方工具Logrus Gin日志功能1 基础介绍1.1 快速入门1.2 日志基础使用1.3 将日志输出到文件 2 定义路由格式3 修改日志级别4 修改日志格式 第三方日志工具logrus1 快速入门1.1 安装1.2 使用 2 基本功能使用2.1 设置日志输出格式2.2 设置日志输出位置2.…

TYWZOJ 种树苗 待定题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示思路与部分实现完整代码 题目描述 在游戏 Minecraft 中&#xff0c;玩家可以通过种树来使木材再生。玩家需要将树苗种在泥土上&#xff0c;然后等待它长成大树&#xff0c;期间可以利用骨粉来催熟树苗。…

[NSSCTF 2nd] web刷题记录

文章目录 php签到MyBox非预期解预期解 php签到 源代码 <?phpfunction waf($filename){$black_list array("ph", "htaccess", "ini");$ext pathinfo($filename, PATHINFO_EXTENSION);foreach ($black_list as $value) {if (stristr($ext, …

[python 刷题] 974 Subarray Sums Divisible by K

[python 刷题] 974 Subarray Sums Divisible by K 题目如下&#xff1a; Given an integer array nums and an integer k, return the number of non-empty subarrays that have a sum divisible by k. A subarray is a contiguous part of an array. 依旧是 prefix sum 的变种…

EASYX绘制卡通头像

#include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #define PI 3.14 // 1PI 180度 2PI 360度int main() {// 创建1024*1024的窗体initgraph(1024, 1024);// 将背景颜色设施为白色setbkcolor(WHITE);cleardevice();// to…

怀旧,20款曾经辉煌至极的PC软件,用过5个你是老网民

博主是1999年接触电脑的&#xff0c;2000年家里有了台式机&#xff0c;然后和众多孩子一样&#xff0c;迷上了这玩意&#xff0c;虽然博主也毫无意外地沉迷游戏&#xff0c;但同时也对早期的电脑硬件、软件技术有过深入研究&#xff0c;比如BIOS、注册表、黑客技术这种东西。今…