文末有55个实战案例资料
导读:在我们编写PLC程序的时候,有时会因为数据量比较大,然后不便直接访问某个地址的数据。比如:要访问某个字节中的某个位,或者某个“字”中的字节等等。那么如何实现这种类似隔山打牛的间接寻址功能呢?主要有4种方法。
方法一:使用AT实现
(1)新建FB程序块,将“优化的块访问”去掉
(2) 双击进入 FB 块, 展开 FB 块的“块接口”
(3) 在“块接口”中,在 Input 添加一个变量,变量名为 A,数据类型为 int;接着在变量 A下面一行,数据类型这一列,手动输入“AT”
(4) Input 中会生成一个新变量“Input_1”,数据类型是 int,将这个变量的数据类型修改成 Array,并编译该 FB 块,可以看到变量 A 和变量Input_1 的偏移量都是 0.0,这表示变量 A 和变量 Input_1 是相同地址,只是以不同的数据类型显示
(5) 以此方法新建 Output 的变量 B 和变量 Output_1,这样就可以对变量 A 和变量 B 进行位访问操作。
(6) OB1 调用 FB 块时,FB 块的管脚不会显示变量 Input_1 和 Output_1
方法二:使用Slice 方式对变量进行寻址
slice 方式支持这2种方式的块:可标准访问的块、可优化访问的块。
下列语法用于寻址:
1.<tag>.x<bit number="">
2.<tag>.b<byte number="">
3.<tag>.w<word number="">
4.<tag>.d<dword number="">
举例:
(1)访问MW2地址中的第0个位
(2)访问MW2地址中的第0个字节,也就是低8位
(3)访问MD10地址中的第1个字,也就是高16位
最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把55个实战案例全部整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序封装、模拟量控制变频器、通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我!