1、如何在wincc中输入时间传送s71500

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有时候我们需要在wincc画面中输入时间值,传送给PLC。

以下就是wincc7.2中输入开始时间和结束时间做定时用,传送给PLC s7-1500,经过变换,PLC输出一个定时状态。

1、在wincc中变量管理-结构变量中新建结构类型(类型名为:时间输入)。

结构类型包含
两个元素:时和分。

都为无符号的32位值,外部变量。

2、在新建的结构类型“时间输入”下建两个变量,分别为“JS_T_输入”和“KS_T_输入”
作为定时结束时间和定时开始时间,数据类型默认为“时间输入”选择连接到的位置,我的是之前建好的连接1500,选择地址,我的如下表。

地址一定要按照字节长度排好。

3、在WINCC画面中做输入输出域,我的例子共4个,开始时间的“时”,开始时间的“分”,
结束时间的“时”,结束时间的“分”。

做好4个输入输出域的数据连接,输入输出域的属性。

“时”-上限值位23,下限值为0,数据格式10进制,输出格式99。

“分”-上限值59,下限值为0,数据格式10进制,输出格式为99。

以上的操作是wincc部分的操作,接下来需要做PLC的操作了。

4、首先在s7-1500编程软件中新建变量。

地址要与我们在wincc中建立的变量吻合。

5、接下来新建一功能,编写程序。

以下是我的程序。

思路如下:在S7-1500中数据格式TIME_OF_DAY(时间),占用4个字节,例如10小时11分58秒312毫秒的表示格式为:TOD#10:11:58.312,按照时分:秒.毫秒排序。

在规定的取值范围内,Time_OF_DAY类型数据可以与DINT类型的数据相互转换(TOD#00:00:00.000对应0),DINT数据每增加1,时间增加1ms。

我们在程序中输入的时,换算成ms,则应该乘以3600000;输入的分,换算成ms,则应该乘以60000。

输入时与分相加,则为总的输入时间。

程序中,我们使用RD_LOC_T读取系统时间DATE_AND_TIME,然后用T_CONV将时间转换为TIME_OF_DAY格式。

输入的开始时间和结束时间分别于系统时间使用T_COMP进行时间比较。

则得出定时状态,此状态为系统时间在定时时间内则输出1,系统时间不在定时时间内则输出0。

总结:
本节的解决的问题是在wincc中没有与s71500中相对应的时间格式,我们需要输入一个DINT格式的时间,然后对时间进行转换。

重点是时间格式与DINT转换的方法。

在S7-1500中数据格式TIME_OF_DAY(时间),占用4个字节,例如10小时11分58秒312毫秒的表示格式为:TOD#10:11:58.312,按照时分:秒.毫秒排序。

在规定的取值范围内,Time_OF_DAY类型数据可以与DINT类型的数据相互转换(TOD#00:00:00.000对应0),DINT数据每增加1,时间增加1ms。

相关文档
最新文档