[西门子] 1200PLC的IO映射方法与技巧

[复制链接]
查看45 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式
>

文末有55个实战案例资料

导读:在我们编程的时候,有时候需要IO映射,而映射的方法可以使用梯形图和SCL,而使用SCL语言编写会更加方便和高效。SCL来编写的话,就需要使用PEEK、和POKE指令,那这两个指令如何使用呢?

使用S7-1200 SCL 编程语言的 PEEK 和 POKE 指令,可以实现对 I/O、M 存储器和数据块的读取或写入。而通过 POKE_BLK 指令,还可以实现数据区域的复制或移动。

(1)创建 S7-1200 项目文件
在TIA PORTAL 创建新项目,双击“添加新设备”在项目中添加 S7-1200 PLC_1,CPU 1214C DC/DC/DC。

(2)添加 SCL 逻辑块
展开 PLC_1,双击“程序块”中的“添加新块”,选择语言“SCL”,添加 FC 块,名称为 FC1 。

(3)添加 PEEK、POK E指令
双击 FC1 打开 SCL 逻辑块,将指令的“基本指令>移动操作>读写存储器”中 PEEK、POKE指令拖入程序编辑区。

示例:

1) PEEK_BOOL 指令

将 M0.1 的状态值读取到 M0_7(M0.7),执行结果如图所示: 

(2) PEEK(_BYTE)指令

将 IB20 的值读取到 DB1的Byte类型变量,执行结果如图10 所示:

(3) PEEK_WORD指令

如图所示, FC2 是字寻址,执行 FC2,将 QW30 的值读取到 DB1的Word类型变量: 

(4) PEEK_DWORD指令

如图 所示, FC3 是双字寻址,执行 FC3,将变量 DB2.DBD0 的值读取到 DB1的DWord类型变量:

(5)将CPU1214C本体的起始地址I0.0的14个I点的值,分别送入DB1的14个Bool的数组的每一个元素,对应方式:

通过上述对应关系,可以发现规律,数组元素下标从0开始逐个加1,对应的I点输入地址的位变量是从0到7再往复,而字节地址是先是8个0,然后是1,所以总结是字节地址是下标整除8的商,位地址是下标整除8的余数,换成编程语言就是字节地址是下标/8,位地址是下标MOD8。然后就可以利用FOR循环来快速实现逐个位的赋值,如图13所示。结果如图所示。

最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把55个实战案例全部整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序封装、模拟量控制变频器、通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我!



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则