上海非俗工控自动化设备有限公司
联系人 : 瞿章明 (销售经理)
24小时服务热线 :132 1743 0013
商务QQ :2750 130 146
微信 :132 1743 0013
地址( Add ) :上海市松江区海立华亭5幢
在 S7-300/400 中使用 “T_CONV” 指令从 "DT" 中提取日期、星期和时间数据。该指令需要调用三次。在参数 “IN” 中填写 “DT” 类型的变量并在参数 “OUT” 中分别填写定义为 “Date”, “Int” 和 “TOD” 类型的变量。
- 从 “DT” 转换到 “Date” (日期)
- 从 “DT” 转换到 “Int”(星期)
- 从 “DT” 转换到 “TOD” (当前时间)
使用 S7-1200/1500 可以直接符号访问 DTL 变量结构的组件,但它无需访问间接地址或编辑绝对地址。建议将数据保存到全局数据块。在这个数据块中声明变量,如 “DateTime” 为 “DTL” 数据类型,输入之后点击左边的箭头符号展开这个变量。在这个 DTL 数据类型下将显示其结构组成(YEAR, MONTH, DAY, ... )及其各自的数据类型。
图. 01
在项目 “STEP7_TIA_Portal_DataTime” 中包含一个 S7-300 站 (CPU 317-2PN/DP) 和一个 S7-1500 站 (CPU 1516 1516-3 PN/DP)。
S7-300 站
在功能 FC20 中,网络1调用 “RD_SYS_T” 指令读取 CPU 时钟的日期和时间。网络2调用 “T_CONV” 指令从 “DT” 格式中提取数据类型 “Date”, “Int” 和 “TOD” 。在程序中使用功能 FC21 调用 “WR_SYS_T” 设置 CPU 时钟的日期和时间。在此之前,调用 “T_COMBINE” 将 “Date” 和 “Time_of_Day” 格式的数据组合为 “Date_and_Time” 的格式。参数来源于数据块 “Read_DT” (读取数据) 和 “Write_DT” (写入数据)。
S7-1500 站
使用 “RD_SYS_T” 指令 (在 FC1 调用) 和 “WR_SYS_T” 指令(在 OB1 调用) 对 CPU 的时钟进行读写。输入 DB 变量 “DB_Set.DateTime” (写入数据) 和输出 DB 变量 “DBStore1.DateTime” (读取数据) 的数据类型是 “DTL” 。
作为一个 DTL 变量应用,接通时间被编程为 5 个工作日。从周一到周五,变量“Access_On”(A0.0)在上午9点到上午9点一刻接收到“True” 信号,这一周的其他时间段接收到的是“False”信号。
符号 | 注释 |
DBStore1.DateTime.WEEKDAY | 读出星期,如“2”即为星期一 |
DBStore1.DateTime.HOUR | 读出小时,如“14”即为14:00(下午 2 点) |
DBStore1.DateTime.MINUTE | 读出分钟,如“24”即为 24 分钟 |
表 02
通过访问结构组件(例如天、小时、分钟),可以使用 STEP 7 比较和跳转功能来编程所需的自动化任务。
- 在功能 FC1“DTL_Access” 的网络 1 中,使用“RD_SYS_T” 功能读取当前日期和时间。
- 网络 2 到 4 包含“IN_RANGE”操作和“CMP” 比较功能对定义范围中的数据进行查询。在这个例子中使用的天数是从 2 到 6,小时从 9 到 10,分钟从 0 到 15 。
- 如果所有的编程条件都满足并且“Release” 变量允许执行,网络 5 中的变量“Access_On” 将接收到“True” 信号。
- 即使仅有一个条件不满足,信号“Access_On” 也将保持“False”(网络 6 )或被复位
附加的下载包含一个上述功能描述的 STEP 7 (TIA Portal) 项目。拷贝 “STEP7_TIA_Portal_DataTime.zip” 文件到一个独立的目录下双击运行。这个项目及所有相关的子目录将被解压。然后就可以用 STEP 7 (TIA Portal) 来打开使用该解压后的项目。项目包含德文和英文注释。