S7-200传送过来的数据如何保持

S7-200传送给S7-300 15个地址(要显示15个温度,15个水压,15个气压的值),200的程序是每隔一秒把这个15个地址分别换为温度、水压和气压。
我现在WINCC要分别显示这45个数据(即45个DB地址),我wincc里或是S7-300的程序里该怎么处理啊。

最佳答案

我wincc里或是S7-300的程序里该怎么处理啊?
1、硬件组态中已将S7-200与S7-300地址定义了对应的关系(即地址映射)。
2、在WINCC与S7-300中为了便于应用,可将这些传送的数据存入DB(数据块),在编程时就体会到十分分别。
3、传送到DB实例:
可以应用循环语句。例如S7-200对应S7-300地址为PIW128开始的15个字,PIW168开始的15个字分别送人DB10、DB20:
. 将PIW128-开始,共:15个字送入DB10中
在OB1:
OPN   DB     10      //打开DB 10
      L     P#128.0          //初始读指针
      LAR1  
      L     P#0.0            //初始写指针
      LAR2  
      CALL  FC   100

2. 将PIW168- 开始,共15个字送入DB20中
  OPN   DB     20      //打开DB 20
      L     P#168.0          //初始读指针
      LAR1  
      L     P#0.0            //初始写指针
      LAR2  
      CALL  FC   100

建立一FC块:
在FC100:
L    15               // 15个字的循环计数为初值
M001: T     MB    10        //计数值 送入MB 10
      L     PIW [AR1,P#0.0]   //按读指针指示的地址读数据
      T     DBW [AR2,P#0.0]  //按写指针指示的地址写数据
      +AR1  P#2.0            //读指针指向下一数据地址
      +AR2  P#2.0            //写指针指向下一数据地址
      L     MB    10        //取循环计数值
      LOOP  M001           //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。         
注:
1.  L     P#128.0  语句中的128.0是个表示地址的常数,可按需要设值.
2.  L     15  语句中的15是个常数,可按需要设值. 
3.  L     PIW [AR1,P#0.0] 语句即为从PIW取数,如写为L   IW [AR1,P#0.0] 即为从IW取数。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午4:06
下一篇 2018年12月2日 下午4:07

相关推荐