codesys的命名空间_c#assembly命名空间

介绍 CODESYS 编程软件中的变量

引言

在 PLC 编程中,变量是构建自动化控制程序的基础。CODESYS 作为一种强大的 PLC 编程软件,提供了多种变量类型和管理方式,使得编程更加灵活和高效。本文将详细介绍 CODESYS 中的变量,包括变量的定义、类型、局部变量和全局变量、掉电保持变量、结构变量等内容。

1


什么是变量

在编程中,变量是一种用于存储数据的命名空间。它们可以保存不同类型的数据,如数值、字符或逻辑值。变量使得程序能够动态处理数据,从而实现复杂的控制逻辑。

2


变量的命名规则

变量命名需要严格按照下面的格式,为了代码的可阅读和规范性,尽量采用统一风格的命名方式,如:匈牙利命名风格,骆驼风格,Pascal 风格,蛇形风格等。

变量只能由字母、数字和下划线组成;

变量首字必须是字母;

变量不能是关键词和操作符;

变量不区分大小写;

变量没有长度限制;

3


变量的格式定义

变量名+冒号+数据类型+初始化(可选)+分号+注释(可选)

示例:

VAR
    variables        : INT     :=    ; //注释
    variables_str    : STRING  := '' ; (*注释*)
END_VAR

variables 是变量名;

后边加冒号 ( : ) ;

INT 是数据类型

:= 是赋值操作符

是初始值

语句结尾要加分号 ( ; )

最后是注释,注释标识符可以是 // 或者 (* *

4


变量的类型

CODESYS 支持多种变量类型,常见的有以下几种:

布尔型:

BOOL :存储二进制值(0 或 1)。

整数型:

BYTE :8 位无符号整数。(0 to

WORD : 位无符号整数。(0 to

DWORD : 位无符号整数。(0 to

LWORD : 位无符号整数。(0 to 2^)

SINT :8 位有符号整数。(- to

USINT :8 位有无符号整数。(0 to

INT : 位有符号整数。(- to

UINT : 位无符号整数。(0 to

DINT : 位有符号整数。(- to

UDINT : 位无符号整数。(0 to

LINT : 位有符号整数。(-2^ to 2^)

ULINT : 位无符号整数。(0 to 2^)

实数型:

REAL : 位浮点数。(1.401e- to 3.403e+ )

LREAL : 位浮点数。(2.2250738585072014e- to 1.7976931348623158e )

字符串型:

STRING :用于存储字符串。( (n+1)*8 )

时间:

TIME : 位。( T#0d0h0m0s0ms to T#49d17h2m47s295ms )

TIME OF DAY : 位。( T0D#0:0: to T0D#:: )

DATE : 位。( D# to DATE# )

DATE AND TIME: 位。( DT#-:0: to DT#-6:: )

5


局部变量和全局变量


局部变量

局部变量是在特定的程序块(如函数或功能块)中定义的变量。它们仅在该程序块内部可见和使用,程序块执行结束后,局部变量的值将被释放。这种变量有助于避免命名冲突和数据不一致的问题。

示例:

FUNCTION_BLOCK FB_Test
VAR_INPUT
  button        :  BOOL;
END_VAR
VAR_OUTPUT
  out           :  BOOL;
END_VAR
VAR
  outState      :  BOOL;
  rise          :  BOOL;
  riseHF        :  BOOL;   
END_VAR


全局变量

全局变量是在整个程序中定义的变量,它们可以被程序的任何部分访问和修改。全局变量适用于需要在多个程序块之间共享数据的情况,但需要小心使用,以避免意外修改和复杂的调试过程。

示例:

VAR_GLOBAL
  Always0    : BOOL;   //常0
  Always1     : BOOL;   //常1
  test_bool   : ARRAY[0..] OF BOOL;
  test_       : BOOL;
END_VAR

6


掉电保持变量

掉电保持变量是一种特殊的变量类型,其值在 PLC 掉电或重启时不会丢失。这类变量适用于需要保存系统状态或重要数据的情况。

示例:

VAR_GLOBAL PERSISTENT RETAIN
  
  runTime                : TIME := T#10MS;
  stopTime               : TIME := T#1000MS;  


  data                   : ARRAY [0..] OF DUT;


  Total_running_TIME     : REAL;
  
  p_position_x_start     :  DINT := ;
  p_position_y_start     :  DINT := -;


END_VAR

7


结构变量

结构变量(Structured Variables)是由多个不同类型的变量组成的集合。它们允许将相关的数据组合在一起,便于管理和访问。

示例:

TYPE MyStruct :   //定义结构变量
STRUCT
    id: INT;
    name: STRING[];
    value: REAL;
END_STRUCT
END_TYPE
VAR     //使用结构变量
    structVar: MyStruct; // 结构变量
END_VAR


总结

CODESYS 中的变量是 PLC 编程的核心组件。理解和正确使用变量类型、变量的命名规则、变量的格式定义、局部变量和全局变量、掉电保持变量以及结构变量,对于编写高效、可靠的控制程序至关重要。希望本文对您理解 CODESYS 中的变量有所帮助,从而在实际应用中更好地利用这些知识。

往期回顾


CODESYS 的简介及环境安装

在 CODESYS 平台,创建你的第一个项目


原文链接:,转发请注明来源!