wincc系统日期时间获取
- 格式:doc
- 大小:21.50 KB
- 文档页数:2
wincc画面输入时间,博途程序中输入时间案例【原创版】目录1.WinCC 画面输入时间的概念与应用2.博途程序中输入时间的方法和案例3.总结正文【1.WinCC 画面输入时间的概念与应用】WinCC 是西门子公司推出的一款工业自动化控制系统软件,广泛应用于各种工业生产过程中。
在 WinCC 的画面中,输入时间是一项重要的功能,它可以实现对生产过程的精确控制和实时监控。
画面输入时间主要包括两个方面:一是在画面上显示当前的时间,方便操作人员了解当前的工作时间;二是通过画面上的控件输入具体的时间值,用于控制生产过程的进度。
例如,在一条生产线上,操作人员可以通过 WinCC 画面输入某个生产过程的开始时间和结束时间,从而实现对该过程的精确控制。
【2.博途程序中输入时间的方法和案例】博途(TIA Portal)是西门子公司推出的一款工程软件,用于开发和配置工业自动化控制系统。
在博途程序中,输入时间主要通过使用时间控件和时间函数实现。
以下是一个博途程序中输入时间的案例:假设我们需要在一个博途程序中实现一个定时器功能,当生产过程开始时,定时器开始计时,当生产过程结束时,定时器停止计时。
我们可以使用以下步骤实现:1.在博途程序中创建一个定时器控件,用于显示当前的计时时间。
2.编写一个时间函数,用于设置定时器的初始值和更新定时器的值。
在函数中,我们可以使用博途提供的时间函数(如:TB_GET_CURRENT_TIME)获取当前时间,并将其设置为定时器的初始值。
3.在生产过程开始时,调用时间函数,启动定时器。
4.在生产过程结束时,调用时间函数,停止定时器。
5.将定时器控件与定时器关联,以便在程序运行过程中,定时器控件可以实时显示当前的计时时间。
【3.总结】通过在 WinCC 画面中输入时间,我们可以实现对生产过程的精确控制和实时监控。
在博途程序中,我们可以使用时间控件和时间函数实现输入时间的功能。
如何使用WinCC 全局脚本访问系统时钟?
说明:
使用下列函数设置或读取系统时间:
∙SetSystemTime
∙SetLocalTime
∙GetSystemTime
∙GetLocalTime
系统中本地计算机时间和格林威治时间是有区别的。
函数“SetSystemTime / GetSystemTime”用于设置或读取格林威治时间。
函数“SetLocalTime / GetLocalTime”用于设置或读取本地计算机时间。
两种时间会因地理的时区不同而改变,也会受到冬令时和夏令时的影响。
两个函数使用方法相同。
操作本地计算机时间的函数是Windows 系统函数,因此它独立于WinCC 函数“GetLocalTimeString”或WinCC 早期版本的“GetLocalTime”函数。
Time_Functions.zip
图. 01
创建环境
在该FAQ 中的画面和下载,创建在WinCC Professional V11 SP2 中。
条目号:59558655 日期:2012-05-04。
wincc时间显示函数一、方法一1.设置一个或多个变量,类型为内存字符串或者是一个连接PLC 的外部变量的字符串2.全局脚本:C脚本#pragma code("kernel32.dll"); 定义系统链接文件GetLocalTimes(SYSTEMTIME*lpst);获取系统时间变量#pragma code();SYSTEMTIME time;GetLocalTime(&time);SetTagWord("Varname1",time.wYear);年SetTagWord("Varname2",time.wMonth);月SetTagWord("Varname3",time.wDayOfWeek);星期SetTagWord("Varname4",time.wDay);天SetTagWord("Varname5",time.wHour);小时SetTagWord("Varname6",time.wMinute);分钟SetTagWord("Varname7",time.wSecond);秒SetTagWord("Varname8",time.wMilliseconds);毫秒3.在输入输出域关联变量,记住要修改显示类型为字符串如果要在一个中显示,则把Varname1-Varname8通过字符串连接即可方法二:char* temp=(char*)SysMalloc(26);time_t *p=(time_t*)SysMalloc(sizeof(time_t)),CT;CT=time(p);strcpy(temp,ctime(&CT));*(temp+24)='\0';return temp;方法三:利用控件中的wincc digital/analog clock contol。
wincc时间的问题
在做WINCC历史数据及曲线的控件时,数据的时间都是根据操作系统的时间,而操作系统的时间又可以随便调整,严格的讲,这些数据对应的时间存在很大的风险,比如操作人员随意更改了系统时间,WINCC存取的数据时间就不正确了,有什么办法可以很好的处理呢。
最佳答案
1、对于服务器/客户机结构,将WinCC时基设置为服务器时间,再做好服务器时间的校准和Windows操作权限设置工作即可;
2、对于单站结构,归档数据各自为政,无法共享,做好单站时间的校准和Windows操作权限设置工作即可;
3、规范的话,可以将AS时间设置为主时钟源,为网络上其他设备授时,或者设置单独的GPS或NTP服务器作为主时钟源。
再做好各Windows系统的操作权限设置工作即可。
由于TP170A , TP170micro 及TP177micro 系统时钟为软时钟,因此系统时钟只能通过“日期/时间PLC”区域指针按一定时间间隔与S7-200 控制器进行同步。
您有两种选择:•将控制器系统时钟传送至操作面板•将自定义系统时钟传送至控制器及操作面板在本条目的最后提供了一个以上所描述的两种传送方法的样例压缩文件。
其包含了STEP 7 Micro/Win 的一个程序块(库)及WinCC flexible 组态的相关操作面板项目。
将控制器系统时钟传送至操作面板您可以在操作面板上通过使用“日期/时钟PLC”区域指针(参看图01 )来同步系统时钟,该时钟为操作信息及其他事件信息的时间戳。
在有些操作面板没有“日期/时间PLC ”区域指针的情况下,WinCC flexible 无法组态。
在WinCC flexible 中组态在“区域指针”选项单中插入“日期/时间PLC ”区域指针并设置连接参数。
(图01 )。
然后定义区域指针的起始地址,例如“VB 0”,该地址用于存放S7-200 传送至操作面板的系统时钟。
通过更新周期可以定义操作面板更新当前系统时钟为控制器系统时钟的时间间隔。
建议将更新周期设置为至少10 秒。
图01为了能够读出S7-200 的系统时钟,您需要从STEP 7 Micro/WIN 项目树的指令中调用READ_RTC 块。
在STEP 7 Micro/WIN 中的组态在您的STEP 7 Micro/WIN 程序中需要调用READ_RTC函数用于读出系统时钟。
将区域指针的地址分配给T 参数。
最后您需要将WinCC flexible 样例项目下载到您的操作面板中。
图02将自定义系统时钟传送至控制器及操作面板如果您希望使操作面板的系统时钟能与S7-200 的系统时钟同步且通过操作面板能够修改时钟,您必须使用该条目的最后所提供的附件1中所包含的“Timesynch_TP170A_micro”(v1.1 )块。
wincc flexible 中如何设定日期和时间?并
且断电不消失
winccflexible中如何设定日期和时间?并且断电不消失啊?‘
最佳答案
首先HMI作用是读取和写入数据组态值的设备。
它本身就没有这个功能,需要通过PLC进行的。
断电记忆功能需要在PLC中进行,如果是200可以通过添加电池卡或者设置数据保持地址范围进行,300的话直接采用数据块地址编程(数据块默认值是断电保持型的)。
200PLC的读取和写入系统时钟指令为:READ_RTC/SET_RTC
300plc的读取和写入系统时钟指令为:SFC0、SFC1
以上读取和写入时钟的地址存储形式都以字节形式进行的。
在HMI设备上组态若干个I/O域,赋值与PLC的读取和写入地址一致的地址和写入时钟的按钮。
wincc 怎样实现数字时钟?怎样实现wincc软件gps授时。
就是,plc控制站及操作站wincc,接受gps的时间?plc通过winccc传受。
最佳答案1、首先通过你的计算机或plc建立与gps接收机联系,其后应用wincc来读取这个时间数据。
有关gps接收器提供了详细的说明及如何装配和配置gps接收,详见:/information/manage/edit/uploadfile/gi s/ch26.pdf2、wincc如何获取系统时间:wincc通道“systeminfo”:从winccv5.0sp2开始,wincc就提供了通道“systeminfo”,通过该选项就可以建立一个wincc文本变量来获取系统时间。
该wincc变量可以用于在过程画面中显示本地计算机的系统时间,或者在全局脚本中利用该变量。
但是不可以通过它来进行时间设置3、相关文档:详见连接:/cn/llisapi.dll?func=cslib. csinfo&objid=24202491&nodeid0=10805585&caller=view&lan g=zh&siteid=cseus&aktprim=0&objaction=csopen&extranet=st andard&viewreg=cn参见《如何同步操作面板与s7-200/300/400控制器间的日期和时间》的例子:/cn/llisapi.dll?func=cslib. csinfo&objid=34281179&load=treecontent&lang=zh&siteid=cs eus&aktprim=0&objaction=csview&extranet=standard&viewre g=cn。
WINCC写入与读取S5TIME类型的数据周辉(北京倍杰特国际环境技术有限公司2011-01-20)参考资料:STEP7中的帮助文件,数据类型S5TIME的格式。
STEP7中的时间,日期和定时器。
S5TIME的格式:S5TIME是用BCD码保存的,在数据存储区中占用两个连续的字节。
当使用S5TIME时,输入时间值的范围为0 - 999,并说明时间基准(参见下表)。
时间基准指的是定时器以多少间隔为一个单位来递减时间值,一直到达0的时间间隔。
S5TIME的时间基准(以下简称时基)时基 BCD码 时间范围10ms 00 10ms-9s990ms100ms 01 100ms-1m39s990ms1s 10 1s-16m39s10s 11 10s-2h46m30s注:ms=毫秒;s=秒;m=分;h=小时;可以使用下列语法格式之一预装载时间值1>W#16#wxyzw = 时基xyz=BCD格式的时间值2>S5T#aH_bbM_ccS_dddMSa = 小时,bb = 分钟,cc = 秒,dd = 毫秒时基自动选择,该值四舍五入至具有此时基的下一个较小的数字。
这里可以输入的最大值为9990s,或2h46m30s.具体例程:用WINCC写入S5TIME格式的数据1、在STEP7中创建一个DB块,在DB块中创建一个S5TIME格式的数据变量。
2、在WINCC中创建变量S5TIME,数据类型是无符号32位数,在调整格式里选择DWORDTOSIMA TICBCDTIMER;设置线性标定,变换单位为S。
3、在WINCC中建一IO输入输出域,链接变量,此例中为写入S5TIME时间。
4、运行系统,WINCC中写入123S,观察效果如下:用WINCC读取定时器S5TIME运行中剩余时间。
1、在WINCC中建立一定时器变量T1772、在WINCC中建立一IO输入输出域,链接变量,此例为读取S5TIME时间。
3、运行系统,观察效果如下:注:本例1图中需要设置线性标定后才能观察到3图中的效果,否则观察到的结果单位是ms 。
5/CN/view/109037336C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 目录1使用WinCC 标准控件的工具按钮 (3)1.1在线趋势控件 (3)1.2在线表格控件 (5)2使用Excel 模板文件 (7)3使用“SQL Server Import/Export”向导 (9)C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 由于从WinCC V6.2开始,所有的历史数据都通过算法进行了压缩处理,无法通过标准的SQL 语句访问。
如果编程需要选件WinCC/Connectivity Pack ,根据WinCC/Connectivity Pack 语法访问历史归档值和历史报警信息;或通过欧洲版选件WinCC Industrial Data Bridge 的组态,可将WinCC 的历史数据及实时数据写入到数据库或Excel CSV 文件。
但是,对于生产数据的分析,比如仅需要某一时间段的Excel CSV 数据文件,可以使用以下三种方法方便的将历史数据导出到Excel CSV 文件。
1使用WinCC 标准控件的工具按钮1.1在线趋势控件从WinCC V6.2版本开始,在对象选项板的“控件”标签上,如图1.1单击“WinCC 在线趋势控件”对象。
打开“WinCC 在线趋势控件的属性”快速组态对话框。
在“工具栏”标签中组态 WinCC 在线趋势控件的工具栏中的按钮,勾选最后一项“报表保存”。
激活运行系统后,在线趋势控件中的最后一个工具栏按钮显示为存盘图标,图1.2。
图1.1图1.2C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 将趋势控件所显示的当前数据保存到Excel 中,必须停止趋势更新,“启动/停止更新”工具按钮显示为 。
WinCC访问S7 控制器中数据类型为DATE_AND_TIME 的变量描述:为了使WinCC能够访问S7控制器DATE_AND_TIME数据类型的变量,必须创建一个对应使用VBS函数“DatePart”,可以确定WinCC日期/时间变量的组成元素(如,年,日,分钟),通过“DateAdd”改变日期/时间的组成。
这两个VBS函数需要在表中指定时间标识以确定日期/时间的组成。
更多信息:•关于结构变量DATE_AND_TIME的信息请参考手册Programming with STEP 7下的:"Appendix" > "Data and parameter types" > "Combined data types" > "Format of the datatype DATE_AND_TIME";•关于读取指定date/time 组成的信息请在WinCC Information Service 下索引:DatePart;•关于编辑指定date/time 组成的信息请在WinCC Information Service 下索引:DateAdd。
说明:以下说明是组态创建必需的WinCC 结构变量。
为此,WinCC项目必须已经打开,并且到控制器的连接也•MILLISEC_2(数据类型ByteToUnsignedByte)图017 在变量管理器中,双击已经建立的通道(如TCP/IP)并且点击新建的连接;8 右键单击明细窗口的空白区域,选择菜单"新建变量"。
9 输入名称(如CPUTime),数据类型选择已创建的结构名称(如S7_DATE_AND_TIME);10 选择数据区(如数据块DB 2)及DATE_AND_TIME 变量的起始字节(如0),然后点击“OK” 确认所有对话框。
图02注释:•在变量管理中不能删除结构变量。
系统时钟在使用西门子的系统中经常使用到,大家应该认真的掌握!在这里老鬼就简单的给大家介绍一下系统时钟的读取和设定方法!
1、系统硬件配置!【实验环境】
2、设定PLC CPU的当前时间方法1
3、设定PLC CPU的当前时间方法2
4、设定PLC CPU的当前时间
5、在DB块中定义DA T数据类型,用于存储当前CPU时钟。
注意建立数据块的时候数据块必须输入符号名否则讲找不到数据地址。
6、调用系统功能SFC0和SFC1来对时钟进行设定和读取。
7、在变量表中对读取的时间进行监控,当前时间为2012-11-28 16:02:42
---------------------------------------------------------------------------------
启程培训中心/
工控老鬼技术Blog:/wincchome
E-mail:gongkong8@。
wincc系统日期时间获取
系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间
方法一:
在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了;
下面新建几个TAG: 名字:date, 数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YYYY"
名字:time, 数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS"
根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容
TAG建立完成了,就可以读到系统时间了。
新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了.
方法二: 使用
C脚本获得系统时间
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
time_t timer;
struct tm *ptm;
char *p;
time(&timer);
ptm=localtime(&timer);
p=SysMalloc(9);
sprintf(p,"%04d:%02d:%02d",ptm->tm_year+1900,ptm->tm_mon+1,p tm->tm_mday);
return(p);
}
其中
//系统时间已经获得
//年: ptm -> tm_year+1900
//月: ptm-> tm_mon+1
//日: ptm -> tm_mday
//星期: ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几。