西门子PLC通信--200smart-通过指令编程实现S7通信
哈喽,大家上午好啊!
那今天给大家带来西门子PLC通信--200smart-通过指令编程实现S7通信
S7-200smartS7通信:
有200smart与200smartS7通信;
200smart与1500PLCS7通信;
200smart与1200PLCS7通信;
上篇文章讲解了200smart与200smart使用向导实现S7通信,下面我们进入本次的内容讲解通过指令编程实现S7通信。
在下面的例子中,CPU1为主动端,其IP地址为192.168.2.100,调用PUT/GET指令;CPU2为被动端,其IP地址为192.168.2.101,不需调用PUT/GET指令,网络配置见图1;
通信任务是把CPU1的实时信息写入CPU2中,把CPU2中的实时时钟信息读写到CPU1中。
图1CPU通信网络配置图
CPU1主程序中包含读取CPU实时时钟、初始化PUT/GET 指令的TABLE参数表、调用PUT指令和GET指令等。
网络1:读取CPU1实时时钟,存储到VB100~ VB107。
图2读取CPU1实时时钟
注:READ_RTC指令用于读取CPU实时时钟指令,并将其存储到从字节地址T开始的8字节时间缓冲区中,数据格式为BCD码。
网络2:定义PUT指令TABLE参数表,用于将CPU1的VB100~ VB107 传输到远程CPU2的VB0~ VB7。
图3定义PUT指令TABLE参数表
a.定义通信状态字节
b.定义CPU2IP 地址
c.定义CPU2的通信区域,从 VB0地址开始
d.定义通信数据长度
e.定义CPU1的通信区域,从VB100地址开始
网络3:定义GET指令TABLE参数表,用于将远程CPU2的VB100~ VB107 读取到CPU1的VB0~ VB7。
图4定义GET指令TABLE参数表
- a.定义通信状态字节
- b.定义 CPU2 IP 地址
- c.定义 CPU2 的通信区域 ,从 VB100 地址开始
- d.定义通信数据长度
- e.定义 CPU1 的通信区域,从 VB0 地址开始
网络4:调用PUT指令和GET指令。
图5调用PUT指令和GET指令
CPU被动端编程
CPU2的主程序只需包含一条语句用于读取CPU2的实时时钟,并存储到VB100~ VB107,如图6所示。
图6读取CPU2实时时钟
今天《西门子PLC通信--200smart-通过指令编程实现S7通信》小智就分享到这,大家可以收藏使用,如果遇到问题或者不能理解的地方可以私信小智或评论留言,如果喜欢关注小智,点赞转发谢谢!