1 术语
TIA 博途中的通用术语:
PLC变量
PLC数据类型
变量表
含义如下:
1 | 变量 | 变量由名称/标识符标记,并使用控制器内存中的地址。变量总是用某种数据类型(布尔、整数等)定义的: |
2 | 变量值 | 变量值是存储在变量中的值。 |
3 | 实际参数 | 实参是指令、函数、函数块等接口互联的变量。 |
4 | 形式参数 | 形式参数是指令、函数和函数块(Input、Output、 InOut和Ret_Val)的接口参数。 |
2 常用编程语言
1 | 梯形图 | LAD | Ladder Diagram | 适合电气控制 |
2 | 功能块图 | FBD | Function Block Diagram | 适合电子工程 |
3 | 结构化控制语言 | SCL | Structured Control Language | 类似C语言 |
4 | 语句表 | STL | Statement List | 汇编语言,指令多 |
参考文章:西门子PLC四种不同的编程语言示例_西门子plcc语言编程-CSDN博客
注:创建块时,例如OB、FB和FC,都可以直接用所需的编程语言进行编程。
3 块
3.1 处理器优化数据存储
数据存储原则:
出于与第一代SIMATIC控制器兼容的原因,S7-300/400控制器接受了“大端”数据存储原则。
基于改变的处理器架构,新一代S7-1500控制器始终以“小端”顺序访问4个字节(32位)。因此在系统端会产生以下属性。
3.2 标准块与优化块
表 S7-1500控制器的数据访问
| 标准块 | 优化块 |
1 | 如果发生不利偏移,控制器需要2×16 位访问才能读取4个字节的值(例如 REAL值)。 | 控制器存储变量的访问是优化的。访问是32位(REAL)。 |
2 | 每次访问都会读取整个字节和屏蔽每个位。 | 每个位都分配一个字节。 |
3 | 最大块大小为64kB。 | 最大块大小可达16MB。 |
推荐:只使用优化块。
注:优化块不显示“偏移地址”。
3.3 块属性
块大小 | ||
最大大小和数量 | S7-1500 | |
DB | 最大尺寸 | 64 kB |
| 最大数量 | 65535 |
FC/FB | 最大尺寸 | 512 KB |
| 最大数量 | 65535 |
FC/FB/DB | 最大数量 | 10000 (CPU1518) |
组织块数量 | ||
组织块类型 | S7-1500 | 好处 |
循环和启动OB | 100 | 用户程序的模块化 |
硬件中断 | 50 | 可为每个可能的事件单独创建OB |
延时中断 | 20 | 用户程序的模块化 |
循环中断 | 20 | 用户程序的模块化 |
时钟中断 | 20 | 用户程序的模块化 |
调用块时,块参数可以有针对性的显示或隐藏。在这里,有三个选项可以为每个形式参数单独配置(显示,隐藏,如果未分配参数则隐藏)。可用于:
– FC, FB
– In, Out, InOut
优点:更好地概览具有许多可选参数的块。
4 S7-1500的数据类型
4.1 基本数据类型
整数数据类型 | ||
类型 | 大小 | 数值范围 |
USint | 8位 | 0 .. 255 |
SInt | 8位 | -128 .. 127 |
UInt | 16位 | 0 .. 65535 |
UDInt | 32位 | 0 .. 4.3 Mio(10^9) |
ULInt* | 64位 | 0 .. 18.4 Trio (10^18) |
LInt* | 64位 | -9.2 Trio .. 9.2 Trio |
LWord | 64位 | 16#0000 0000 0000 0000 to |
注:S-small, D-double, L-long, S-signed, U-unsigned |
浮点数据类型 | ||
类型 | 大小 | 数值范围 |
Real | 32位(1位前缀,8位指数,23位尾数), | -3.40e+38 .. 3.40e+38 |
LReal | 64位(1位前缀,11位指数,52位尾数), | -1.79e+308 .. 1.79e+308 |
4.2 数据类型Date_Time_Long
结构:
Year | Month | Day | Weekday | Hour | Minute | Second | Nanosecond |
DTL 总是读取当前系统时间。通过符号名称访问各个值(例如, My_Timestamp.Hour)
4.3 Unicode数据类型
Unicode数据类型 | ||
类型 | 大小 | 数值范围 |
WCHAR | 2 字节 | - |
WSTRING | (4 + 2*n) 字节 | 预设值: 0 .. 254个字符 |
备注:n = 字符串长度 |
4.4 数据类型VARIANT
VARIANT类型的参数是一个指针,可以指向不同数据类型的变量。与ANY指针相比,VARIANT是一个带有类型检测的指针。这意味着目标结构和源结构在运行时被检查,必须是相同的。
比如:
ANY和VARIANT的比较 | |
ANY | VARIANT |
使用定义的结构需要10个字节的内存 | 不需要用户的主存储器 |
通过分配数据区或填充ANY结构进行初始化 | 通过分配数据区或系统指令进行初始化 |
无类型化的–无法识别互连结构的类型 | 类型化的–互连类型可被识别,对于数组,长度也可以确定 |
部分类型化的–对于数组,长度也可以确定 | VARIANT可以通过系统指令进行评估和创建 |
5 符号和注释
5.1 注释
梯形图(LAD):
说明:
1. 块注释
2. 网络标题注释
3. 网络注释
4. 注释指令、块和函数(打开、关闭等)
在编程语言SCL和STL中,可以在每一行中用 // 进行注释。
注:可以在监控表中创建注释行
5.2 系统常量(System constants)
S7-1500控制器的所有硬件和软件组件(例如,接口、模块、OB...)都有自己的系统常量。系统常量是在中央和分布式I/O的设备组态的设置期间自动创建的。
注:控制器的系统常量可在“PLC变量 - 默认变量表”文件夹中找到。
5.3 用户常量(User constants)
全局用户常量在“PLC 变量”中定义。
使用用户常量来提高程序的可读性和集中可变性
– 错误代码,
– CASE指令,
– 转换系数,
– 自然常数...