s7-200传送过来的数据如何保持
郑志武
发布于2013-10-27 17:43
322
0
标签:
s7-200传送给s7-30015个地址(要显示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:
opndb10//打开db10
lp#128.0//初始读指针
lar1
lp#0.0//初始写指针
lar2
callfc100
2.将piw168-开始,共15个字送入db20中
opndb20//打开db20
lp#168.0//初始读指针
lar1
lp#0.0//初始写指针
lar2
callfc100
建立一fc块:
在fc100:
l15//15个字的循环计数为初值
m001:tmb10//计数值送入mb10
lpiw[ar1,p#0.0]//按读指针指示的地址读数据
tdbw[ar2,p#0.0]//按写指针指示的地址写数据
+ar1p#2.0//读指针指向下一数据地址
+ar2p#2.0//写指针指向下一数据地址
lmb10//取循环计数值
loopm001//循环计数值如为0则结束循环;如不为0减1后则转向标号为m001的语句,继续循环。
注:
1.lp#128.0语句中的128.0是个表示地址的常数,可按需要设值.
2.l15语句中的15是个常数,可按需要设值.
3.lpiw[ar1,p#0.0]语句即为从piw取数,如写为liw[ar1,p#0.0]即为从iw取数。