湖南西门子PLC代理商
订货数据
关于 S7-400H 组件的订货数据,请参见在“S7-400/S7-400H/S7-400F/FH"下的相应模块。
S7-400F/FH
SIMATIC S7-400F/FH 故障安全自动化系统可在安全要求较高的工厂中使用。它可对立即停机不会给人员或环境带来危险的过程进行控制。S7-400F/FH 具有两种基本设计:
S7-400F:
故障安全自动化系统。在控制系统中发生故障的情况下,生产过程会切换到安全状态并中断。S7-400FH:
故障安全和高可用性自动化系统。在控制系统中发生故障的情况下,冗余控制部分将发挥作用,继续控制生产过程。
通过另外使用标准模块,可以建立一个全集成控制系统,可在非安全相关和安全相关任务共存的工厂环境中使用。可以使用相同的标准工具对整个工厂进行组态和编程。
产品类型
SIMATIC S7-400 有多个型号:
S7-400:
中的功能强大的 PLC,具有模块化结构和免风扇的设计。S7-400H:
采用冗余设计的容错自动化系统,适用于故障安全型应用。S7-400F/FH:
采用冗余设计的故障安全自动化系统,也具备高可用性。
S7-400
S7-400 自动化系统采用模块化设计。它拥有丰富的模块,这些模块可进行各种组合。
系统包含下列组件:
电源模块 (PS):
用于将 SIMATIC S7-400 连接到 120/230 V AC 或 24 V DC 电源电压。CPU:
配有集成 PROFIBUS DP 接口的不同 CPU 具有不同性能范围。根据具体型号,这些 CPU 也可以带有集成 PROFINET 接口。使用 PROFIBUS接口,***多可以连接 125 个PROFIBUS DP 从站。可以将***多 256 个 PROFINET IO 设备连接到 PROFINET 接口。SIMATIC S7-400 的所有 CPU 均可处理配置。此外,在一个中央控制器中的多重计算模式下,多个 CPU 可以协同工作以提高性能。这些 CPU 处理速度快且具有确定性响应时间,可实现较短机器循环时间。用于数字量 (DI/DO) 和模拟量 (AI/AO) 输入/输出的信号模块 (SM)
通信处理器 (CP),例如,用于总线连接和端到点连接
功能模块 (FM):
用于完成计数、定位和凸轮控制等要求苛刻的任务的专业模块。
根据具体要求,也可使用下列模块:
接口模块 (IM):
用于连接中央控制器和扩展单元。SIMATIC S7-400 的中央控制器可带有***多 21 个扩展单元运行。SIMATIC S5 模块:
在相关 SIMATIC S5 扩展单元中,可以寻址 SIMATIC S5-115U/-135U/-155U 的所有输入/输出模块。此外,在 S5 EU 或者直接在 CC 中(使用适配器)都可以使用 SIMATIC S5 的特定 IP 和 WF 模块
关闭到归档数据库的连接
关闭与数据库的连接并释放资源,步骤如图1的步骤5。自定义函数winccdatasourceclose(precordset, connobj)的具体代码如下图所示:
function winccdatasourceclose(precordset,connobj)
'关闭数据库连接,释放资源
'获取连接和查询对象
dim ors,conn
set ors=precordset
set conn=connobj
ors.close
set ors = nothing
conn.close
set conn = nothing
end function
3.6 运行结果
本文档介绍的脚本,其运行结果如下图所示:
图4
3.7 更改代码以满足更广泛的需求
对于不同客户的定制化需求,可以通过修改少量代码实现。
(1) 不同的查询需求,修改ssql变量的值。
'修改变量ssql的值
dim ssql
ssql="tag:r,'processvaluearchive\tag1','0000-00-00 00:01:00.000','0000-00-00 00:00:00.000'"
比如,如果需要动态制定查询时间,可以在画面中输入查询日期,然后通过hmiruntime.tags(“变量名")来获得查询条件,再赋值给ssql。
(2) listview需要使用不同的列名。
修改函数addlistviewheadercolumn中的如下内容:
‘用查询的数据库表格列名来为listview添加列名 (*2)
dim addcolumnindex
for addcolumnindex=0 to columncount-1
, , cstr(ors.fields(addcolumnindex).name)
next
(3) listview需要填充不一样的行数和内容。
修改函数filllistview中的如下内容:
dim maxline,n
maxline = 10 '改变此值,可以更改显示的条目数
n=0
'修改填充内容,请修改下面do while循环中的代码
do while (not ors.eof and n < maxline)
n = n + 1
dim oitem,listviewt
set listviewt=plistview
set oitem = listviewt.listitems.add()
oitem.text = ors.fields(0).value
oitem.subitems(1) = ors.fields(1).value
oitem.subitems(2) = formatnumber(ors.fields(2).value, 4)
oitem.subitems(3) = hex(ors.fields(3).value)
oitem.subitems(4) = hex(ors.fields(4).value)
ors.movenext
loop
本文档中提供的脚本尽量通用化,方便客户修改和复用。并加入了错误处理机制,保证脚本的正确运行,并提高了诊断的方便性