如何根据WinCC设置S7控制器的时间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何根据WinCC设置S7控制器的时间?
描述:
下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟,比如报文的处理时间,C 脚本的运行时间等,因此这个方法在精度方面不如真正的时间同步精确。
还要注意时间跳变(向前/向后)的发生,这就意味着这个方法不适用于必须按时间正向顺序的应用。
The following solution writes the time (type
DATE_AND_TIME) with a WinCC script into a global data block (DB) of the controller下面的方法是使用WinCC的脚本把时间(DATE_AND_TIME类型)写到PLC的全局数据块(DB)中。在function block (FB)中,时间从DB中读出并写到临时/本地变量(时戳)中。该变量在系统功能块"Set_Clock"调用时被传送,从而设置到PLC中。
更多信息:
•时钟同步的设置参考条目ID: 16622902.
•如何通过以太网组态时钟同步参考条目ID: 2416068.
•如何通过PROFIBUS组态时钟同步参考条目ID:
11932931.
说明:
过程
步
骤.
1 创建一个数据块(在本例中是DB1),其中有一个
"DATE_AND_TIME" 类型的变量和一个"Byte"类型变量。
图 01: 创建DB1
2 按照给定的顺序在FB的临时/本地区域中创建下列变量。
1.时戳TimeStamp定义为"Date_And_Time"类型
2.返回值ret_value定义为"Int"类型
3 在FB中创建一个新的network,并拷贝下面.txt文件中的
STL代码到这个network中:
AWL-Code.txt ( 786 bytes )
注意:
图 02: 在WinCC变量管理器中创建DB1_YEAR
名称地址
DB1_YEAR DB1.DBB0 (已经在图02中创建) DB1_MONTH DB1.DBB1
DB1_DAY DB1.DBB2
DB1_HOUR DB1.DBB3
DB1_MINUTE DB1.DBB4
DB1_SECOND DB1.DBB5
DB1_FLAG DB1.DBB8
图 03: 必需的变量
5 打开全局脚本编辑器,使用“文件>新建项目函数”新建项目
函数
6 删除函数模版,插入下面.txt文件中的C脚本并保存。
C-Skript.txt ( 542 bytes )
7 使用循环动作或“按钮”动作调用该函数。
版本:
上述步骤是在以下环境中测试的:
U DB1.DBX 8.0
SPBN end
L DB1.DBB 0 // Year
T LB 0
L DB1.DBB 1 // Month
T LB 1
L DB1.DBB 2 // Day
T LB 2
L DB1.DBB 3 // Hour
T LB 3
L DB1.DBB 4 // Minutes
T LB 4
L DB1.DBB 5 // Secounds T LB 5
L DB1.DBB 6 // 1/1000 Sec T LB 6
L DB1.DBB 7 // 1/1000 Sec T LB 7
CALL "SET_CLK"
PDT :=#TimeStamp
RET_VAL:=#ret_value
R DB1.DBX 8.0 //reset Flag
end: NOP 0