如何从上位机或者触摸屏设定Time或S5Time值?
2015-10-22 08:11
204 查看
如何从上位机或者触摸屏设定Time或S5Time值?
首先必须在上位机上安装WINCC或WINCC Flexible,然后打开软件如WINCC Flexible,利用向导或手动创建一个项目:
选择设备如下:
双击connections,在打开的页面中定义连接并定义相关的通讯参数。
双击Tags,在打开的页面中定义Tag:
打开画面,插入一个INPUT/OUTPUT域并选择对应格式。最后插入文本输入域。
完善项目并下载。此处以毫秒为例,用户当然可以定义自己的时基,然后在PLC程序中换算即可;如果此处定义为秒,则在PLC程序中可对对应变量乘以1000转化为毫秒再送给TIME变量即可。
在PLC侧设定对应的系统参数(MPI地址和波特率等),然后可创建TIME变量。插入DB块并定义变量如下图:
打开OB1输入如下指令,MD30为上位机写入的数据,DB3.DBD0为PLC中定义的数据,也可以不经过转换直接用MD30作为Time变量的输入值,也就是说FB41的TI和TD可以用DM30,也可以用DB3.DBD0。
然后我们即可将DB3.DBD0赋给相应的IEC定时器或功能块的Time变量作为设定值,如下图中的FB41的TI和TD。
如需将其上位机的设定赋值给S5TIME变量时我们需要将设定值进行转换。首先介绍一下S5TIME的数据格式,如下图所示:
参照上面的方法在上位机定义一个WORD(或INT)类型的变量,例如下图中的MW34
在STEP7中首先定义一个DB块并定义一个S5TIME数据类型的变量:
打开符号表编辑符号:
打开OB1,用I_BCD指令将整数转换为BCD格式,需要注意写入的整数最大值为999,否则,I_BCD会出错(如果千位数存在并小于等于3,编程上讲应该不会出错,但可能达不到你想要的设定值,如果千位数存在并大于3后面的转换将会出错),然后将其与时基做或运算(例子中W#16#3000表示时基位10秒,时间值为0,因为最高4位为0011,如果是W#16#2000,则表示时基位1秒,时间值为0,因为最高4位为0010),并通过MOVE指令送入定义的S5TIME数据类型的变量中。
编辑调用指令:
打开变量表观察,当M0.0为1时MW34中的值已经转化为S5TIME的格式并存储到定义的DB1.DBW0中
当M0.1从0变为1,T0按设定值运行
也可通过在线的方法来观察程序
首先必须在上位机上安装WINCC或WINCC Flexible,然后打开软件如WINCC Flexible,利用向导或手动创建一个项目:
选择设备如下:
双击connections,在打开的页面中定义连接并定义相关的通讯参数。
双击Tags,在打开的页面中定义Tag:
打开画面,插入一个INPUT/OUTPUT域并选择对应格式。最后插入文本输入域。
完善项目并下载。此处以毫秒为例,用户当然可以定义自己的时基,然后在PLC程序中换算即可;如果此处定义为秒,则在PLC程序中可对对应变量乘以1000转化为毫秒再送给TIME变量即可。
在PLC侧设定对应的系统参数(MPI地址和波特率等),然后可创建TIME变量。插入DB块并定义变量如下图:
打开OB1输入如下指令,MD30为上位机写入的数据,DB3.DBD0为PLC中定义的数据,也可以不经过转换直接用MD30作为Time变量的输入值,也就是说FB41的TI和TD可以用DM30,也可以用DB3.DBD0。
然后我们即可将DB3.DBD0赋给相应的IEC定时器或功能块的Time变量作为设定值,如下图中的FB41的TI和TD。
如需将其上位机的设定赋值给S5TIME变量时我们需要将设定值进行转换。首先介绍一下S5TIME的数据格式,如下图所示:
参照上面的方法在上位机定义一个WORD(或INT)类型的变量,例如下图中的MW34
在STEP7中首先定义一个DB块并定义一个S5TIME数据类型的变量:
打开符号表编辑符号:
打开OB1,用I_BCD指令将整数转换为BCD格式,需要注意写入的整数最大值为999,否则,I_BCD会出错(如果千位数存在并小于等于3,编程上讲应该不会出错,但可能达不到你想要的设定值,如果千位数存在并大于3后面的转换将会出错),然后将其与时基做或运算(例子中W#16#3000表示时基位10秒,时间值为0,因为最高4位为0011,如果是W#16#2000,则表示时基位1秒,时间值为0,因为最高4位为0010),并通过MOVE指令送入定义的S5TIME数据类型的变量中。
编辑调用指令:
打开变量表观察,当M0.0为1时MW34中的值已经转化为S5TIME的格式并存储到定义的DB1.DBW0中
当M0.1从0变为1,T0按设定值运行
也可通过在线的方法来观察程序
相关文章推荐
- dos 日期时间格式设置使用小结(Date和Time)
- Insert Date and Time into Access
- Java中Timer的用法详解
- 解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
- 使用 MySQL Date/Time 类型
- php中time()和mktime()方法的区别
- PHP中time(),date(),mktime()区别介绍
- Python中的localtime()方法使用详解
- Python中的ctime()方法使用教程
- python time模块用法实例详解
- 详解Python中time()方法的使用的教程
- 在Python中操作时间之mktime()方法的使用教程
- 在Python中处理时间之clock()方法的使用
- Python中用sleep()方法操作时间的教程
- 在Python操作时间和日期之asctime()方法的使用
- 在Python中操作时间之strptime()方法的使用
- Python计时相关操作详解【time,datetime】
- Python中用altzone()方法处理时区的教程
- 在Python中操作日期和时间之gmtime()方法的使用
- html5初始化时间控件