产品描述
西门子V90电机1FL6094-1AC61-2LB1
其中参数obj用于返回当前发生变化的变量的结果值,而itemsID返回当前发生变化的变量的ID号,其与添加变量时服务器返回的ID号对应。以上就是一个基本的测试函数,其相对同步编程来说,应该还简单一些。
3、 同步编程与异步编程的使用场合
一般来讲,同步编程需要使用定时器来循环检测变量,而异步编程则不需要,当服务器到数据发生变化时,可以直接调用传入的函数,从这方面来讲,使用异步编程更简单一些,但同步编程使用外部的定时器控制,编程则会更加灵活,一般只监控变量时可以使用异步编程,而当需要写入数据时可以使用同步编程,但这也不是**的,我曾编写了一个标准监控程序,没有使用异步编程。
4、 关于开发监控界面的说明
毫无疑问,我们应该开发一系列控件,用于简化界面的设计,否则工作量会异常大。设计一个标准模块,用于**次运行软件时添加变量,并可以设定当前已经组态的界面中的各控件元素与之关联,这样在以后再运行该软件时,不需要再设定,就可以直接连接变量,并进行相应的变化。否则若在编程时编写代码进行关联,其工作量将会异常大。
其实该类我早已经开发了,但一直没有时间写成文章,本来想开发一系列标准控件和标准模块,但由于换到上海工作,可能不会再有时间搞这方面的研究了。主控继电器(Master Control Relay)简称MCR。
主控继电器用来控制MCR区内的指令是否被正常执行,相当于一个用来接通和断开“能量流”的主令开关。有关指令:
MCRA:MCR区指令;
MCRD:取消MCR区指令;
MCR(:打开MCR区指令,在MCR堆栈中保持该指令之前的逻辑运算结果RLO(即MCR位);
MCR):关闭MCR区指令,从MCR堆栈中取出保存的逻辑运算结果RLO;
MCR(,MCR)指令必须成对使用,以表示受控临时“电源线”的形成与终止。
例:
MCRA //MCR区
A I0.2
MCR( //RLO保存到MCR堆栈,打开MCR区,I0.2=1则MCR位为1,反之为0
A I3.1
=Q 4.0 //如MCR位为0,不管I3.1的状态如何,Q4.0被置为0
A I0.5
JNB -001
L MW20
T QW10 //如MCR位为0,MW20内容送入QW10
-001:NOP0
)MCR //结束MCR控制区
MCRD //关闭MCR区
A I1.1
=Q4.1 //这两条指令在MCR区之外,不受MCR位的控制
在此,在转帖有关例题:
MCR指令叫做主控指令,简单地讲是有这么一个MCR的栈区。在这个栈区内的操作不仅受分步条件控制,还可以用MCR的ON或OFF来进行总控制!如:
STL Explanation
MCRA //Activate MCR area.
A I 1.0
MCR( //Save RLO in MCR stack, open MCR area. MCR = "on" when RLO=1 (I?.0 ="1"); MCR = "off" when RLO=0 (I 1.0 ="0")
A I 4.0
= Q 8.0 //If MCR = "off", then Q 8.0 is set to "0" regardless of I 4.0.
L MW20
T QW10 //If MCR = "off", then "0" is transferred to QW10.
)MCR //End MCR area.
MCRD //Deactivate MCR area.
A I 1.1
= Q 8.1 //These instructions are outside of the MCR area and are not dependent upon the MCR bit.
在上例中,用I 1.0来作为MCR取的条件,既将A I 1.0逻辑结果RLO存入MCR区,MCR区是否为NO取决于RLO,RLO=0时MCR区为NO,在此条件下,区内的逻辑结果受MCR总控,既如A I 4.0 = Q 8.0一句,只要MCR区为NO,Q 8.0即为零,而不管I 4.0的状态如何!
2 测试通讯连接
下载PC站点后,在Station Configuration中查看各设备状态,如果是Run,那么打开OPC Scout进行测试:
图02 测试已配置的OPC Server与PLC通讯
OPC DCOM Server的S7 connection状态可以通过订阅条目:S7:[<连接名称>]&statepath(),如果值字符”UP”说明OPC Server与S7 PLC的S7连接已经建立。
3 连接已经建立但是Item的质量代码是”Bad”
如图02,OPO Server与S7 PLC的S7-1516之间的S7连接已经建立,但是所有订阅读取PLC地址/符号的标签质量代码都是”Bad”,在TIA Portal V12项目中检查CPU属性:
图03 CPU属性
如果属性设置同图03,把”Permit access with PGT/GET” communication from remote partner(PLC,HMI,OPC,…)”选项勾选:
图04 允许PUT/GET 服务器连接
重新编译S7-1500站点并下载。可以看到OPC Item可以正常读写,质量代码为”Good”:
图05 订阅成功
4 连接已建立但是无法访问DB块: Simatic Net V8.2及之前版本
OPC Server (Simatic Net V8.2及之前版本)无法访问 S7-1500 优化访问的DB。如果无法访问DB,请将DB 修改为标准访问 DB:
图06 去掉DB块的优化访问属性
图07 读取标准访问DB成功
对于优化的DB,在OPC服务器地址空间里,无法解析符号:
图08 无法解析符号
5 SIMATIC NET PCSW V12: 访问S7-1500 Optimized DB
OPC访问S7-1500优化DB必须使用Simatic NET PC V12或更高版本,以下介绍配置测试要点: 把PC Station和PLC S7-1500在STEP 7 V12 软件同一项目中,配置OPC Server到S7-1500的S7 connection:
图09 PC Station与PLC组态到一个项目里
图10 建立OPC Server到PLC的连接
S7 connection的自动配置属性:
图11 请注意TSAP与原来的不同
Simatic Net V12仅可使用新的OPC UA Server Endpoint用于访问优化DB块: OPC.SimaticNet.S7OPT。原来的OPC DCOM server "OPC.SimaticNET" 及OPC UA server "OPC.SimaticNET.S7"都不行。
图12 OPC.SimaticNet.S7OPT
符号访问S7-1500,包括优化DB:
图13支持S7-1500符号访问
6 新的PLC数据类型(如64位浮点数等): Simatic NET PC V8.2或之前版本不支持
对于S7-1500新的数据类型,V8.2及之前版本无法通过下载符号方式使用。
图14 MyDB3里有新的数据类型
图15 配置到OPC Server符号空间:OPC Server属性SIMATIC NET OPC Server与S7-1500通讯要点
图16 配置到OPC Server符号空间:选定符号包含新的数据类型,编译无误
图17 下载到PC Station, OPC Scout浏览Sym: ,没有新的数据类型
Simatic NET OPC Server(V8.2)可以支持的数据类型:
图18 数据类型
如果V8.2或之前版本需要访问其他数据,方法之一是添加数组Item读写连续字节,如, S7:[S7_Connection_1]DB3,Byte34,8
然后在OPC Client里编程进行转换(自行编程处理)。
7 新的PLC数据类型(如64位浮点数等): Simatic NET PC V12
通过Simatic Net PCSW V12,配置符号访问方式可以支持S7-1500的这些新数据类型:
图19 SIMATIC NET PC可以支持的数据类型
图21 添加新类型的条目,订阅质量码为"Good"
产品推荐