首页 理论教育日期和时间的复杂数据类型设计与优化

日期和时间的复杂数据类型设计与优化

【摘要】:DATE_AND_TIME数据类型与ARRAY、STRING和STRUCT一起都属于复杂数据类型类别。图4-16 从STEP 7库进行复制不能将常数作为实际参数传送给复杂数据类型的形式参数。7)功能FC40将数据类型格式TIME转换为格式S5TIME。表4-30所示为FC9的输入输出参数,其中参数DT1的时间与参数DT2的时间相等,则返回值的信号状态为“1”。5)功能FC28比较两个DATE_AND_TIME数据类型格式变量的内容,检查它们是否不相等,并将比较结果作为返回值。

DATE_AND_TIME数据类型与ARRAY、STRING和STRUCT一起都属于复杂数据类型类别。复杂数据类型的允许存储区域是数据块(D)区域和本地数据(L)区域。

因为DATE_AND_TIME是复杂数据类型,在语句中使用DATE_AND_TIME作为形式参数时只能以下列形式提供实际参数:

1)指定块的变量声明表中的特定于块的符号。

2)数据块的符号名称,例如“DB_sys_in-fo.System_Time”,由以下部分组成:

① 在符号表中为数据块号定义的名称(例如DB5的名称为“DB_sys_info”);

② 在数据块中为DATE_AND_TIME元素定义的名称(例如DB5中含有的DATE_AND_TIME数据类型变量的名称为“System_Time”)。

978-7-111-38359-8-Chapter04-52.jpg

图4-16 从STEP 7库进行复制

不能将常数作为实际参数传送给复杂数据类型(包括DATE_AND_TIME)的形式参数。也不能将绝对地址作为实际参数传送给DATE_AND_TIME。

1.FC1 AD_DT_TM功能

图4-17所示的功能FC1向一个时间(格式DT)值加上一段时间(格式TIME),产生一个新的时间值(格式DT),其输入输出参数见表4-28。时间(参数T)必须在从DT#1990-01-01-00:00:00.000到DT#2089-12-31-23:59:59.999的范围内。此功能不运行输入检查。如果加法结果超出了有效范围,则将结果限制为相应值,并将状态字的二进制结果(BR)位设置为“0”。

978-7-111-38359-8-Chapter04-53.jpg

图4-17 FC1调用格式

表4-28 FC1的输入输出参数

978-7-111-38359-8-Chapter04-54.jpg

2.FC3 D_TOD_DT

功能FC3将数据格式DATE和TIME_OF_DAY(TOD)组合在一起,并将这些格式转换为数据类型格式DATE_AND_TIME(DT)。表4-29为FC3的输入输出参数,其中输入值IN1必须在限定值DATE#1990-01-01和DATE#2089-12-31之间。

表4-29 FC3的输入输出参数

978-7-111-38359-8-Chapter04-55.jpg

类似的有如下功能:

1)功能FC6从格式DATE_AND_TIME提取数据类型格式DATE。DATE值必须在限定值DATE#1990-1-1和DATE#2089-12-31之间。

2)功能FC7从格式DATE_AND_TIME提取周时。以数据类型格式INTEGER提供周时:1=星期日;2=星期一;3=星期二;4=星期三;5=星期四;6=星期五;7=星期六。

3)功能FC8从格式DATE_AND_TIME提取数据类型格式TIME_OF_DAY。

4)功能FC33将数据类型格式S5TIME转换为格式TIME。

5)功能FC34将两个时间值(格式DT)相减,结果为持续时间(格式TIME)。时间值必须位于从DT#1990-01-01-00:00:00.000到DT#2089-12-31-23:59:59.999的范围内。此功能不运行输入检查。如果第一个时间(参数DT1)大于(晚于)第二个(参数DT2),则结果为正;如果第一个时间小于(早于)第二个,则结果为负。

6)功能FC35从一个时间值中(格式DT)减去持续时间(格式TIME),结果产生一个新的时间值(格式DT)。时间(参数T)必须在DT#1990-01-01-00:00:00.000和DT#2089-12-31-23:59:59.999之间。

7)功能FC40将数据类型格式TIME转换为格式S5TIME。在转换中进行四舍五入。如果输入参数大于S5TIME格式的允许范围(大于TIME#02:46:30.000),则输出结果为S5TIME#999.3,并将状态字的二进制结果(BR)位设置为“0”。

3.比较DATE_AND_TIME变量

功能FC9比较两个DATE_AND_TIME数据类型格式变量的内容,检查它们是否相等,并将比较结果输出为返回值。表4-30所示为FC9的输入输出参数,其中参数DT1的时间与参数DT2的时间相等,则返回值的信号状态为“1”。此功能不报告任何错误。

表4-30 FC9的输入输出参数

978-7-111-38359-8-Chapter04-56.jpg

类似的功能有如下:

1)功能FC12比较两个DATE_AND_TIME数据类型格式变量的内容,检查其中一个是否大于或等于另一个,并输将比较结果作为返回值。

2)功能FC14比较两个DATE_AND_TIME数据类型格式变量的内容,检查其中一个是否大于另一个,并将比较结果作为返回值。

3)功能FC18比较两个DATE_AND_TIME数据类型格式变量的内容,检查其中一个是否小于或等于另一个,并将比较结果作为返回值。

4)功能FC23比较两个DATE_AND_TIME数据类型格式变量的内容,检查其中一个是否小于另一个,并将比较结果作为返回值。

5)功能FC28比较两个DATE_AND_TIME数据类型格式变量的内容,检查它们是否不相等,并将比较结果作为返回值。