0 变量
0.1 变量地址
TIA Portal软件默认使用IEC 61131-3标准。其变量地址用特殊字母序列来指示,字母序列的起始用%符号,跟随一个范围前缀和一个数据前缀(数据类型)表示数据长度,最后是用数字序列表示存储器的位置。
其中范围前缀为I,Q,M。
长度前缀为:
X | B | W | D |
---|---|---|---|
单个位 | 字节,8位 | 字,16位 | 双字,32位 |
如:%MB7, %MW1, %I0.0
一般而言,以起始字节的地址作为字和双字的地址。即%MW100代表的地址为%MB100和%MB101。%MD100代表的地址为%MB100~%MB103。
0.2 变量类型
0.2.1 位、字节、字和双字
0.2.2 整数数据类型
0.2.3 浮点数数据类型
0.2.4 指令操作数
指令操作数由操作标示符和参数组成。操作标识符由主标识符和辅标识符组成。
主标识符有:I(输入过程影像寄存器)、Q(输出过程映像寄存器)、M(位寄存器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)、L(本地数据寄存器)
辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)
1 DB块
1.1 DB数据块
PLC中储存器的概念:PLC的物理储存器以字节为单位,因此储存器单元规定自己(Byte)单元;储存单元可以以位(Bit)、字节(B)、字(W)或双字(DW)为单位使用,每个字节单元包括8个位。
1.2DB 数据块绝对寻址
数据块储存器类型 | 数据块类型 | 示例 |
---|---|---|
位 X | Boll | DB10.DBX4.2 数据块10中第4个数据字节DBB4中第三个数据位 |
字 B | byte | DB10.DBX4 数据块10中第4个数据字节DBB4 |
字节 W | Int Word | DB10.DBW4 数据块10中第4个数据字DBW4 |
双字节 D | Real dint dword | DB10.DBD4 数据块10中第4个数据双字DBD4 |
注:在DB块属性中,取消勾选优化数据块,编译并查看实际偏移地址;
2 FB块、FC块与DB块
2.1 FB块的意义与使用
2.1.1全局/局部变量与静态数据的基本概念:
- 全局变量:可在整个程序中使用;局部变量:只能在一个块中使用;
- 静态变量:程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量;
- 静态局部变量:对应程序块FB,程序执行完成后永远保存在FB中;
2.1.2 FB函数快
- FB函数块与DB数据块配合使用,DB中保存这FB使用的数据,即使FB退出执行后任保存其数据(在DB中);
- FB函数快是用户自己编写的有自己储存区的(成为背景数据块)的函数快;
- 每次调用FB功能块时需提供各种类型的数据给功能块,功能块也需要返回变量给调用它的块。
- FB可以使用静态参数(FC不行);
- FB的输入,输出可以为空,若空->默认读取/保存在背景数据块中;
2.1.3 块接口
名称 | 内容 |
---|---|
Input | 输入接口 |
Output | 输出接口 |
InOut | 即可输入也可输出 |
Static | 静态变量,不输入也不输出 |
Temp | 临时变量 |
Constant |
2.2 DB块
2.2.1 背景DB块:
- 背景数据块是FB程序块被调用时自动生成的,也只能在FB中修改;
- 背景数据块的结构是由FB程序块决定的;
- 背景DB的变量都是其所属FB的映射,承担传动数据,背景数据块不能被其他快调用;
2.2.2 共享DB块:
- 有用户创建并进行修改;
2.3 FC块
两种FC块:
- 带参数的FC块:注意使用时可能会形成双线圈
- 不带参数的FC块