汇川PLC学习Day3:轴控代码编写、用户程序结构说明与任务配置示例、用户变量空间与编址
汇川PLC学习Day3:轴控代码编写、用户程序结构说明与任务配置示例、用户变量空间与编址
一、新建轴与轴控代码编写
1. 新建轴
(1)新建一个轴
(2)将轴名字更新为实际名字
可以后面实例化后再更改,汇川可以在更新名字时同步更新其他编写的代码名字,汇川一大优点。
最后确定
2. 新建轴控代码文件
3. 轴功能块(轴FB)实例
汇川的轴功能块比三菱而言,代码开发简化了不少流程(相对于如没有轴控FB块的三菱PLC),其不需要了解里面的通讯低层哪个缓存地址代表何种含义,只需拖出来使用即可。
如果自己写一个轴控FB功能块,会相当耗时耗力,可能还会有Bug甚至不稳定。
以下轴功能块实例方法:
- 上面一栏用于变量定义,下面一栏用于代码编辑。
- 这里直接建立好了JOG+/JOG-/调功器开关的三个布尔变量。
(1)MC_POWOR实例
(2)MC_JOG实例
4. 代码 “填空”
当功能块实例出来后,将代码变量指向Axis_1及其相关内容
PROGRAM SV0_ETC
VARJOG_F:BOOL;//JOG+JOG_B:BOOL;//JOG-MotorRegulator:BOOL;//功率调整器开关AXIS_1_POWER: MC_Power;AXIS_1_JOG: MC_Jog;
END_VAR
AXIS_1_POWER(Axis:= Axis_1,//将之前增加的轴名字放进来 ,将此实例指向为Axis_1Enable:= TRUE, //轴使能,程序开发时这个要开放到HMI给调试使用,当为True时,代码即扫描处理bRegulatorOn:= MotorRegulator, //功率调整器开关,当要使用电机时,这个要TruebDriveStart:= TRUE, //设置为TRUE时关闭功能块的紧急停止处理Status=> , //如果轴已经准备好运动,置为 TRUEbRegulatorRealState=> , bDriveStartRealState=> , Busy=> , //如果功能块的处理没有完成,置为TRUEError=> , //异常发生时,置为 TRUEErrorID=> //异常发生时,输出错误代码);AXIS_1_JOG(Axis:= Axis_1 ,//将之前增加的轴名字放进来 ,将此实例指向为Axis_1 JogForward:= JOG_F , //正转JOGJogBackward:= JOG_B, //反转JOGVelocity:= 1, //运动速度设置U/SAcceleration:= 10,//加速度 Deceleration:= 10,//减速度 Jerk:= , Busy=> , CommandAborted=> , Error=> , ErrorId=> );
所以汇川轴控制非常方便,只需要把代码里实例时,实例的轴名字指向组态创建的轴名字即可,不需要知道如三菱电机的缓存地址作用和不用另做轴控制FB功能块。
以上是控制轴JOG功能的代码,真正开发可能要用上以下功能块
MC_ReadStatus; //读取状态功能块
MC_Power; //使能功能块
MC_Jog; //Jog功能块
MC_Home; //原点搜索功能块
MC_MoveVelocity; //位置\速度模式下速度控制功能块
MC_MoveAbsolute; //绝对定位功能块
MC_MoveRelative; //相对定位功能块
MC_Reset; //错误复位功能块
SMC3_ReinitDrive; //错误复位功能块
MC_Halt; //轴暂停功能块
MC_Stop; //轴停止功能块
MC_TouchProbe; //探针功能块
SMC_SetControllerMode;
MC_AbortTrigger;
TRIGGER_REF;
SMC_ERROR; // 设定伺服轴当前模式报警ID
5. 添加到运行任务中
新增的程序文件(SVO_ETC)未在任务配置中时,其文件名为灰色的,需要将其添加到任务中去代码才会扫描
- 双击任务配置,可以单独修改扫描间隔
- 加入任务程序文件
- 选择要加入任务的程序,加入后程序文件名将变为蓝色
6. POU、功能块FB、函数FC三者之间的关系
(1)程序文件POU
如上,我们跑马灯程序文件和伺服控制程序文件都是属于逻辑代码文件,其任务可以单独有不同的扫描执行周期、不同的触发条件
(2)功能块 (FB)
A ) 功能块 (FB)概念
伺服点动POU程序中,使用了系统提供的MC POWER、MC JOG功能块
使用的方法是:
a) 利用MC_POWER、MC JOG功能块作为模板分别定义了AXIS_1_POWER、AXIS_1_JOG两个命令操作块, (也称为MC POWER、MC JOG功能块实例)
b) 对实例的操作块,加入所需的控制变量
推而广之,若有多个伺服,可以创建多个功能块实例,分别加入对应的控制变量
B)功能块的特性一一功能封装
以MC POWER功能块为例,该功能块的完成的功能是用EtherCAT总线对指定伺服从机的“使能操作”,将操作程、成功与否、出错原因等一一列出来,供用户查询。
如果是自己编程,完成同样的功能,需有如下操作
命今准备,按COE规范制备通讯数据
EtherCAT通讯的PDO/SDO的通讯写操作,命令伺服使能
对EtherCAT通讯的PDO/SDO的通讯应答解析
将操作状态、结果存放于特定数据结构数组
可能的异常处理
MC POWER中就封装了这些操作,而我们只需简单调用这个功能块就可以,无需了解其中的技术细节
C)功能块的特性一提高编程效率
若应用系统中有多个伺服,可以创建多个功能块实例,分别加入对应的控制变量,就可以对多个何服进行控制了。
功能块如一个模板,可以复制多个相似的功能块实例,去分别对不同的对象,进行操作处理。这样可减少相似编程代码的反复编写,提高编程效率。
D) 定义自己的功能块
我们可以自己定义功能块,定义完成后就可以像使用编程系统提供的功能块一样,用于操作实例化
(3)函数(FUN)
可以将常用的处理子程序封装为函数FC,供POU或功能块FB调用。
FC不需要实例化,没有保留内存,每次调用的入口参数相同(把实参给形参),得到的反馈结果都会相同
===
程序POU、功能块FB、函数FC的三者比较
二、 用户程序结构说明、任务配置示例
1. 用户程序的典型结构与任务配置示例
即可以“同时”执行几个任务,也可以每个任务可以有不同的扫描执行周期、不同的触发条件。
-
程序任务一一由单个或若千个POU组成
如下图,PLC_PRG可以是跑马灯程序 ,ETHERCAT.EtherCAT_TASK是以太网ETHERCAT任务,SVO_ETC是伺服控制程序
-
扫描时间一一任务配置(指定每个POU的执行周期)
任务配置示例 -
触发条件一一【周期循环、软件变量触发】或【定时触发(如EtherCAT中断)】或【硬件触发(如外部中断)】
任务配置示例
任务扫描流程图
如果任务只用一个扫描循环就可以的话,可以直接在一个Main.Prg程序文件里调动所有的Pou子程序文件就可以,如下
三、 用户变量空间与编址
1. AM600系统提供给用户的变量内存一览其使用
2. AM600内存的编址规则
3. AM600内存的使用特点
4. 编程时指定特定地址的方法
相关文章:
汇川PLC学习Day3:轴控代码编写、用户程序结构说明与任务配置示例、用户变量空间与编址
汇川PLC学习Day3:轴控代码编写、用户程序结构说明与任务配置示例、用户变量空间与编址 一、新建轴与轴控代码编写 1. 新建轴 (1)新建一个轴 (2)将轴名字更新为实际名字 可以后面实例化后再更改,汇川可以在更新名字时同步更新…...
javaee springMVC Map ModelMap ModelAndView el和jstl的使用
pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …...
vue监听表单输入的身份证号自动填充性别和生日
1,先给表单绑定一个v-model值 <el-input type"number" v-model"form.idCard" placeholder"请输入证件号码" /> 2,使用watch监听输入的值 watch(form, (newName, oldName) > {var numid newName.idCard.split(…...
蓝桥杯官网练习题(翻硬币)
题目描述 小明正在玩一个"翻硬币"的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo; 如果同时翻转左边的两个硬币…...
企业架构LNMP学习笔记34
LVS-DR模式: 老师分析: 1、首先用户用CIP请求VIP 2、根据上图可以看到,不管是Director Server还是Real Server上都需要配置VIP,那么当用户请求到达我们的集群网络的前端路由器的时候,请求数据包的源地址为CIP目标地址…...
Python学习之六 循环结构
在很多情况下,我们往往需要循环输入多次,比如,密码最多只能输错3次等。这时候,我们需要使用循环结构。本小节,将学习循环。 一、while循环 while循环的一般形式如下: while 判断条件: 循环语句块 当判断条件为真,便执行循环语句块。比如说,我们需要写一个判断账号…...
flutter 网络地址URL转file
方法1 import dart:io; import package:http/http.dart as http; import package:path/path.dart; import package:path_provider/path_provider.dart;Future<File> _fileFromImageUrl() async {final response await http.get(Uri.parse(https://example.com/xyz.jpg)…...
【JavaEE基础学习打卡07】JDBC之应用分层设计浅尝!
目录 前言一、简单说说应用分层二、实体层1.O/R映射2.O/R映射实践三、数据访问层1.DAO层2.DAO层实战总结前言 📜 本系列教程适用于JavaWeb初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白…...
Helm Kubernetes Offline Deploy Rancher v2.7.5 Demo (helm 离线部署 rancher 实践)
文章目录 1. 简介2. 预备条件3. 选择 SSL 配置4. 离线安装的 Helm Chart 选项5. 下载介质6. 生成证书7. 镜像入库8. 安装 rancher9. 配置 nodeport10. 配置 ingress11. 界面访问11.1 首页预览11.2 查看集群信息11.3 查看项目空间11.4 查看节点信息 1. 简介 Rancher 是一个开源…...
网络编程day6——基于C/S架构封装的线程池
一、线程竞争基本概念 竞争与同步 同一个进程中的线程共享进程中的绝大多数资源,当它们随意竞争时可能会导致资源被破坏、脏数据、不完整问题 通过一些手段让线程在竞争资源时相互协调、避免出现以上问题,这就称为线程同步 原子操作: 操作过程…...
ARM/X86工业级数据采集 (DAQ) 与控制产品解决方案
I/O设备,包括信号调理模块、嵌入式PCI/PCIE卡、便携式USB模块、DAQ嵌入式计算机、模块化DAQ系统,以及DAQNavi/SDK软件开发包和DAQNavi/MCM设备状态监测软件。 工业I/O产品适用于各种工业自动化应用,从机器自动化控制、测试测量到设备状态监测…...
【Java】Jxls--轻松生成 Excel
1、介绍 Jxls 是一个小型 Java 库,可以轻松生成 Excel 报告。Jxls 在 Excel 模板中使用特殊标记来定义输出格式和数据布局。 Java 有一些用于创建 Excel 文件的库,例如Apache POI。这些库都很好,但都是一些较底层的库,因为它们要…...
MySQL主从复制读写分离
读写分离 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 读写分离的好处 因为数据库的“写…...
Kafka3.0.0版本——消费者(手动提交offset)
目录 一、消费者(手动提交 offset)的概述1.1、手动提交offset的两种方式1.2、手动提交offset两种方式的区别1.3、手动提交offset的图解 二、消费者(手动提交 offset)的代码示例2.1、手动提交 offset(采用同步提交的方式…...
【AIGC专题】Stable Diffusion 从入门到企业级实战0403
一、前言 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第03节, 利用Stable Diffusion ControlNet Canny模型精准控制图像生成。本部分内容,位于整个Stable Diffusion生态…...
linux提权
目录 一、linux提权靶场下载与安装 二、基础提权 1.sudo提权 2.suid提权 3.taskset执行bash 三、内核提权 相关网站 https://gtfobins.github.io/#sudohttps://blog.csdn.net/weixin_43873557/article/details/113784146 一、linux提权靶场下载与安装 #下载链接 http…...
Excel VSTO开发7 -可视化界面开发
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 7 可视化界面开发 前面的代码都是基于插件启动或者退出时,以及Excel Application的相关事件,在用户实际操作…...
英文科技论文写作与发表-投稿到发表(第6章)
1 投稿到发表 本章介绍典型会议和期刊从投稿到最终录用或退稿的全过程,期刊从投稿到最终录用或退稿的过程在各种不同学科领域差别不大。会议主要针对计算机科学及其相关领域(如电子、信息、其他工程类)的会议。最后总结几条怎样提高论文命中…...
2.4.3 【MySQL】设置系统变量
2.4.3.1 通过启动选项设置 大部分的系统变量都可以通过启动服务器时传送启动选项的方式来进行设置。如何填写启动选项就是下面两种方式: 通过命令行添加启动选项。 在启动服务器程序时用这个命令: mysqld --default-storage-engineMyISAM --max-conn…...
【Redis】2、Redis持久化和性能管理
Redis 高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供…...
MIT6.S081实验环境搭建
MIT6.S081 lab 环境搭建 本文参考了MIT的官方指南和知乎文章环境搭建 step1 首先需要一个ubuntu20.04的系统,我使用的是vscode的WSL2连接的ubuntu20.04,使用virtual box建一个ubuntu20.04的虚拟机应该也可以。 可以用 lsb_release -a 查看一下自己ub…...
spring spring-boot spring-cloud spring-cloud-alibaba之间版本对应关系
spring 版本与 jdk 的对应关系 https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions 从 spring 6.0 开始使用 jdk 17 进行编译 对应的相关 servlet 容器(tomcat、undertow、jetty等)的 servlet 规范转移到 eclipse&…...
Docker技术入门 | Part01:Docker简介
文章目录 1 虚拟化技术2 Docker概述2.1 Docker能解决的问题2.2 Docker介绍2.3 为什么使用Docker2.4 Docker特点2.5 Docker应用场景 3 Docker与虚拟机对比3.1 Docker和虚拟机组成结构3.2 Docker和虚拟机的不同点 4 Docker基本概念4.1 Docker引擎4.2 Docker基本架构4.3 Docker容器…...
Apache实现weblogic集群配置
安装apache,安装相对稳定的版本。如果安装后测试能否正常启动,可以通过访问http://localhost/进行测试。安装Weblogic,参见文档将bea安装目录 weblogic81/server/bin 下的 mod_wl_20.so 文件copy到 apache安装目录下Apache2/modules/目录下A…...
Java面试题总结2023
Java面试题总结2023 基础String中常用的方法 与 equals的区别值传递和引用传递数组和集合的区别成员变量和局部变量的区别final和finally和finalize的区别Cookie和Session的的区别接口分类接口和抽象类的区别说说你对抽象类的理解String/StringBuffer/StringBuilderjdk1.8的新特…...
采用ROUANT 方法对 nex-gddp-cmip6 数据进行精度校正
专题一 CMIP6中的模式比较计划 1.1 GCM介绍全球气候模型(Global Climate Model, GCM),也被称为全球环流模型或全球大气模型,是一种用于模拟地球的气候系统的数值模型。这种模型使用一系列的数学公式来描述气候系统的主要组成部分…...
超级电容-电池-超级电容混合储能系统能量管理simulink仿真建模模型
建立混合储能系统模型 在Simulink中,首先需要建立一个超级电容和蓄电池并联的混合储能系统模型。其中,超级电容和蓄电池的荷电状态(SOC)需要根据实际情况进行管理。荷电状态可以通过对电池和超级电容的电压、电流等进行测量&…...
最新仿闲鱼链接+独立后台管理 跳转APP
2024最新仿xy链接源码 后台一键生成链接,后台管理教程:解压源码,修改数据库config/Congig 不会可以看源码里有教程 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...
DoIP协议——汽车以太网应用介绍
DoIP目录 前言一、DoIP术语和缩写二、网络拓扑三、DoIP数据基本结构四、应用场景4.1 直接点对点连接4.2 多台外部测试设备分别和多台汽车在局域网内通过交换机点对点连接4.3 一台外部测试设备跨越本地网络与多台车辆连接4.4 外部测试设备的多个应用层实体(在一台硬件或多台硬件…...
标准C++day1——名字空间和堆内存管理
一、C介绍 本贾尼.斯特劳斯特卢普,于1979年在贝尔实验室负责分析UNIX系统内核流量的分布情况时,特别希望有一种更加模块化的工具,于1979.10开始着手研发一款新的编程语言,在C语言的基础上增加了面向对象的机制,也就是C…...
实验一 电子商务网站建设与维护/百度收录关键词
默认参数值的函数 在定义一个函数的时候,可以预先给这些形参确定默认的值。调用时如果传递实参,就用你传递的值,否则就用默认的值。 例: int Add(int x5, int y6){return xy; } int main(){Add(10,20); //1020Add(10); //10…...
昆山市做网站的公司/seo优化是怎么回事呢
数据导入和导出一、数据导入工具1、利用PLSQL直接进行数据表的粘贴(1)下载测试表(2)打开准备导入的文件并进行创建数据库表的SQL语句编辑A、复制表头到新的sheetB、选择粘贴C、选择转置,并按”确定“D、结果E、编辑表格,插入SQL语句注意:里面…...
网站设计原则的历史/网站是怎么做出来的
第一步:在vue项目中安装axios cnpm i axios --save第二步: 在要使用axios的组件中引用 import axios from axios第三步: 在要用axios的组件中 export default { data: function () {return { news: []}}, mounted: function () {axios({me…...
网页制作门户网站案例/网站定制的公司
1.环境准备 1.1.初始化实例 安装DM数据库软件并初始化实例。始化实例请参考DM数据库相关的部署文档,本处不在赘述 1.2.创建元数据库 元数据库是用于保存监控平台的元数据的数据库。 1.3.调整数据库参数 调整DEM元数据库的参数(修改dm.in后重启生效&…...
小程序入口文件/window优化大师
shell脚本批量创建用户有些面试题中会问到批量创建用户的题目,大体是用循环去进行创建,但有时也会有一些额外的附加条件,一起来看看今天的知识点吧。需求:1、自定义用户,不要有特殊字符:user01,user022、最…...
白云、从化公布重点场所/重庆百度快照优化
1、如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;2、echo的效率高于print,因为echo没有返回值,print返回一个整型;3、在循环之前设置循环的最大次数,而非在在循环中;4、销毁变量去释放内存,特别是大的数组;…...