Codesys扩展数据类型Any的探索

Codesys代码代写,程序开发,软件定制,bug修改,问题咨询: TAO宝搜索店铺【林磊教育】

ANY 定义

Any内部是一个数据结构体,在定义一个Any变量时,内部会转成其结构体,定义如下

TYPE Any : 
STRUCT// 实际参数的类型typeclass : __SYSTEM.TYPE_CLASS ;// 指向实际参数的指针pvalue : POINTER TO BYTE;// 指针指向的数据大小diSize : DINT;
END_STRUCT
END_TYPE
(1) __SYSTEM.TYPE_CLASS的定义

TYPE_CLASS是变量的数据类类型,对于用户自定义的数据类型或者功能块实例,其值是 TYPE_USERDEF;

(2) TYPE_CLASS的获取运算符 ‘_VARINFO’

‘_VARINFO’ 运算符是符合IEC61131-3标准的扩展,该运算符返回变量的信息 __SYSTEM.VAR_INFO

(3) __SYSTEM.VAR_INFO的定义

__SYSTEM.VAR_INFO 是一个结构体类型,其定义说明如下

名字数据类型描述
ByteAddressDWORD字节地址
ByteOffseDWORD地址偏移量: 如果是全局变量,其值是相对于该区域的起始地址 ;如果是函数或方法的局部变量,其值是相对于当前堆栈,如果是功能块中的局部变量,其值是相对于功能块的起始地址
AreaDINT内存区域编号: -1 表示实例或者堆栈中变量
BitNrINT位数;如果不是正数数据类型,其值我-1(16#FFFF)
BitSizeINT变量内存的大小 (以位为单位)
BitAddressUDINT变量的位地址;该变量位必须位于输入、输出,中间存储区
TypeClassType_Class变量的数据类型
TypeNamestring变量的数据类型(字符串显示)
NumElementsUDINT数组元素的个数,变量数据类型必须是ARRAY
BaseTypeClassType_Class数组元素变量的基本数据类型,变量数据类型必须是ARRAY
ElemBitSizeUDINT数组元素变量的基本数据类型大小(以位为单位),变量数据类型必须是ARRAY
内存区域MEMORY_AREA有关存储区的信息:MEM_GLOBAL: 全局内存区域;MEM_LOCAL: 本地内;MEM_MEMORY: 标记存储区%M;MEM_INPUT: 输入存储区%I ;MEM_OUTPUT: 输出存储区%Q;MEM_RETAIN: 保持存储区
SymbolSTRING(39)变量名:例如‘iValue’
CommentSTRING(79)变量注释:例如‘this is nums of array’
ANY 的使用

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

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

相关文章

数据结构与算法之美学习笔记:23 | 二叉树基础(上):什么样的二叉树适合用数组来存储?

目录 前言树(Tree)二叉树(Binary Tree)二叉树的遍历解答开篇 & 内容小结 前言 本节课程思维导图: 前面我们讲的都是线性表结构,栈、队列、链表等等。今天我们讲一种非线性表结构,树。问题&…

WebGoat通关攻略之 SQL Injection (intro)

SQL Injection (intro) 1. What is SQL? 本题练习SQL查询语句,就是写一句SQL获取叫Bob Franco所在的department SELECT department FROM employees WHERE first_name Bob AND last_name Franco成功通关! 2. Data Manipulation Language (DML) 本题…

安卓毕业设计:基于安卓android微信小程序的超市购物系统

运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…

喜报 | 思码逸 DevInsight 通过DaoCloud兼容性互认证

近日,北京思码逸科技有限公司(简称:思码逸)的 Devlnsight 一站式研发效能度量平台与上海道客网络科技有限公司(简称:DaoCloud)的 DaoCloud Enterprise 云原生操作系统 V5.0,经双方联…

数据结构:lambda表达式

基本概念 语法 // 1. 不需要参数,返回值为 2 () -> 2 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的和 (x, y) -> x y // 4. 接收2个int型整数,返回他们的乘积 (int x, int y) -> x * y // 5. 接受一个 string 对…

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题: 1. 配置文件相对分散。 在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散 在各个微服务中,不好统一配置和管理。 2. 配置文件无…

ACREL DC energy meter Application in Indonesia

安科瑞 华楠 Abstract: This article introduces the application of Acrel DC meters in base station in Indonesia.The device is measuring current,voltage and energy together with hall current sensor. 1.Project Overview This company is located in Indonesia a…

APP分发平台指的是将开发完成的应用程序

APP分发平台指的是将开发完成的应用程序推广和发布到用户可以下载和安装的渠道,如应用商店、第三方分发平台等,以让更多的用户知道和使用该应用程序,从而提升应用的用户覆盖率和市场份额。在APP分发过程中,需要对APP分发进行一系列…

Java WebSocket 获取客户端 IP 地址

在开发 Web 应用程序时,我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作。当使用 WebSocket 协议时,我们可以使用 Java WebSocket API 来获取客户端的 IP 地址。 本文将介绍如何使用 Java WebSocket API 获取客户端 IP 地址&a…

substring-after用法

substring-after:函数返回一个字符串,该字符串是给定子字符串后给定字符串的其余部分。 #句法 substring-after( haystack ,needle) haystack:要评估的字符串。该字符串的一部分将被返回。 needle:要搜索的子字符串。needle在h…

SqlServer_idea连接问题

问题描述: sqlServer安装之后可以使用navicat进行连接idea使用账户密码进行登录连接失败 问题解决: 先使用sqlServer管理工具进行登录 使用window认证连接修改账户密码 启用该登录名 这时idea还是无法连接,还需要如下配置 打开sqlserve…

获取所有非manager的员工emp_no

个人网站 文章首发于公众号小肖学数据分析 题目来自牛客网 描述 有一个员工表employees简况如下: emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1985-11-21100031959-12-03PartoBamfordM1986…

centos安装指定版本docker

centos7安装指定版本的docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、设…

140.【鸿蒙OS开发-01】

鸿蒙开发 (一)、初识鸿蒙1.初识鸿蒙(1).移动通讯技术的发展(2).完整的鸿蒙开发 (二)、鸿蒙系统介绍1.鸿蒙系统的官方定义(1).鸿蒙操作系统概述(2).鸿蒙的生态 2.鸿蒙系统的特点3.鸿蒙和安卓的对比4.鸿蒙开发的发展前景 (三)、鸿蒙开发准备工作1.鸿蒙OS的完整开发流程2.注册并实…

哈希表HashTable

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1) 哈希表本质…

css设置下划线

css中设置下划线的方法 在CSS中可以使用text-decoration属性或border-bottom属性来给字体设置下划线样式。 1、使用text-decoration:underline;设置下划线样式 CSS的text-decoration属性用于指定添加到文本的修饰,其underline属性值可以定义文本下的一条线。 语…

渗透测试--4.捕获和监听数据

捕获和监听数据 一. 捕获和监听数据1.监听捕获数据方法2.kali监听捕获工具介绍arpspoof使用 arpspoof 工具需要满足以下条件:在 Kali Linux 上,arpspoof 工具是通过 dsniff 软件包提供的。arpspoof实战(同一局域网断网实战)arpspoof实战(流量传输的功能)driftnet参数形式…

计算机类编程课学生编写的代码应该如何管理

管理学生编写的代码是一个重要的任务,以下是几种常见的方式来有效地管理学生的代码: 版本控制系统:使用版本控制系统(如Git)来管理学生的代码。每个学生都可以在自己的分支上进行开发,并通过提交请求&#…

BellmanFord算法

算法 Bellman-Ford(G, w, s)for each vertex v 属于 V[G]d[v] 无穷大p[v] NILd[s] 0for i 1 to |V[G]| - 1relax(u, v, w)for each edge(u, v)属于E[G]if d[v] > d[u] w(u, v)return falsereturn truen表示图中的顶点数,m表示边数,时间复杂度为…

Idea2023 Springboot web项目正常启动,页面展示404解决办法

Idea2023 Springboot web项目正常启动,页面展示404解决办法 问题: 项目启动成功,但是访问网页,提示一直提示重定向次数过多,404 解决方法 在IDEA的Run/Debug Configurations窗口下当前的Application模块的Working directory中添…