http://zhyo720211.2008red.com/ STEP7 常用功能块说明
1. SFB0 \\\\TOF 兼容IEC61131-3的计数和计时功能块
2. SFB41 \\\用于PID控制 41---连续 42---离散
43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的 占空比与模拟量的数值大小成正比.
3. SFC0 \\用于读写PLC中的系统时间
4. SFC14 \T\SFC15 \T\
用于读写DP从站中的一致性数据 如:读写用DP通讯的变频器中的控制字
5. SFC20 \SFC21 \块拷贝,块填充
6. SFC46 \SFC47 \
SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机
7. SFC60 \\MPI的GD通讯
8.IEC Function Blocks
FC22 \\\FC22 ---限幅输出
FC25,FC27 --- 3个数比大小 9.PID Control Blocks
FB41/42/43 同 SFB41 \\\FB58 \FB59 \用于温度控制PID
10.Ti-S7 Converting Blocks
FC105 \模拟量输入输出的比例和数据类型转换
分享]用电动阀的开关度来调节温度,而且用PID实现
控制电动阀的开度来达到控制温度是可以的,我个人认为用比例电磁阀替代电动阀完全可以实现PID的控制。
因为比例电磁阀有标准的模拟量输入信号和反馈信号而且具有PID调节功能。
经过多年的工作经验,我个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。对于温度控制系统P在5-10%之间;I在180-240s之间;D在30以下。对于压力控制系统P在30-60%之间;I在30-90s之间;D在30以下。
WINNT/2000下Wincc与Excel通过netdde通讯的设置
网络dde是使用dde共享特性来管理通过网络进行程序通讯和共享数据的方式。
Windows2000/NT之间的网络通讯可以使用Windows2000/NT自带的netdde功能。 客户端运行excel程序,服务器端运行wincc程序,可以通过netdde实现两个程 序之间的动态数据交换。
请注意:netdde的使用必须保证两台机器是在连网的条件下,能够找到网络名称。 Netdde的具体使用方法如下 1、打开dde
要打开 DDE 共享,请单击windows系统菜单“开始”,单击“运行”,然后键入ddeshare确定。
2、添加dde共享
选择“共享”菜单下的“dde共享”,单击“添加共享”按钮, 共享名:显示共享的名称
应用程序名:进行dde对话的双方的名称。商业应用程序的名称在产品文档中给出。 “wincc”数据库运行系统的程序名是“wincc”,Microsoft Excel的应用程序名是“Excel”, 主题名:对于大多数程序,主题名就是文件名。Wincc下是当前工程的完整路径。 Excel的主题名是电子表格的名称,比如sheet1、sheet2 ……;
允许启动应用程序:如果dde服务器程序没有运行,则dde对话将启动该应用程序。 项目安全:指出用户可以访问任何项目,还是只能访问指定的项目。 权限:指出具有访问权限的用户和组,以及每个用户和组的访问类型 3、信任共享设置
用于查看和修改与信任的 DDE 共享有关的属性。选中刚才建立的共享,然后单击按钮“信任共享”。
允许启动应用程序,当某个客户dde应用程序尝试初始化一个dde对话时,服务器dde应用程序将自动启动。若不选,则只有服务器dde程序运行时,dde对话才能成功。 允许初始化应用程序,若选中,则允许建立到当前dde的新连接,若不选,则只运行当前dde对话。 4、设置访问权限,
可以设置为everyone完全控制,或者用户根据需要设置访问权限。 5、EXCEL做客户端的设置:=\\\\网络机器名\\wincc|工程路径名!tagname
SIEMENS WINCC标准函数
标准函数
该系统包含标准函数。 可以按需要修改这些函数。 此外,还可以自己创建标准函数。 该系统包括一个标准函数集。 一、Alarm - 简短描述
Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些
函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例 {//确认选择的报警记录消息
AcknowledgeMessage(GetTagWord(\ }
指定待确认的消息号。在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数 外部消息窗口操作,该函数显示先前所选消息的注释。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
5.BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 6.BOOL AXC_OnBtnHornAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnInfo(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnLock(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
8.BOOL AXC_OnBtnLockUnlock(char* lpszPictureName, char* pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。之后,不再归档该消息。该函数释放在锁定列表中选择的消息。 使用标准函数操作WinCC报警控件的实例
{// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
9.BOOL AXC_OnBtnLockWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
10.BOOL AXC_OnBtnLoop(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数触发所选消息的“报警回路”函数。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
11.BOOL AXC_OnBtnMsgFirst(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的开始处。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
12.BOOL AXC_OnBtnMsgLast(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的结束处。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的最后一条消息