迪文科技论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 王运芳

迪文智能屏如何与西门子S7-200统一时间

[复制链接]

0

主题

799

回帖

9467

积分

论坛元老

Rank: 8Rank: 8

积分
9467
发表于 2020-3-3 09:20:06 | 显示全部楼层
本帖最后由 DWIN-ARK 于 2020-3-3 09:23 编辑

只改最后一句我这边编译是没有问题的啊,而且我看您工程上0X0010 0X0011这六个变量地址是做的数据变量显示啊,不是用的时间变量显示,您不是说要用屏时间来同步PLC么,那就把屏时间转码成PLC需要的时间格式,然后发给PLC达到修改PLC时间的功能,这段代码其实就是把BCD码的时间转码成了十六进制的时间,存到0x0010,附件是一个使用数据变量显示时间的示例工程,您可以参考一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

25

主题

80

回帖

518

积分

高级会员

Rank: 4

积分
518
发表于 2020-3-3 10:49:26 | 显示全部楼层
DWIN-ARK 发表于 2020-3-3 09:20
只改最后一句我这边编译是没有问题的啊,而且我看您工程上0X0010 0X0011这六个变量地址是做的数据变量显示 ...

没看懂,没看懂
回复

使用道具 举报

0

主题

799

回帖

9467

积分

论坛元老

Rank: 8Rank: 8

积分
9467
发表于 2020-3-3 11:23:52 | 显示全部楼层
本帖最后由 DWIN-ARK 于 2020-3-3 11:28 编辑

这是将屏内RTC时间转换成16进制的一段OS,具体的介绍可以看一下这个帖子中的OS文档http://inforum.dwin.com.cn:20080 ... 12&highlight=OS
回复

使用道具 举报

25

主题

80

回帖

518

积分

高级会员

Rank: 4

积分
518
发表于 2020-3-3 11:35:02 | 显示全部楼层
DWIN-ARK 发表于 2020-3-3 11:23
这是将屏内RTC时间转换成16进制的一段OS,具体的介绍可以看一下这个帖子中的OS文档http://forum.dwin.com. ...

那么说,比如做个历史记录查看的界面,就需要将RTC时间保存下来
回复

使用道具 举报

0

主题

799

回帖

9467

积分

论坛元老

Rank: 8Rank: 8

积分
9467
发表于 2020-3-3 11:36:53 | 显示全部楼层
本帖最后由 DWIN-ARK 于 2020-3-3 11:38 编辑
windyxin872 发表于 2020-3-3 11:35
那么说,比如做个历史记录查看的界面,就需要将RTC时间保存下来

历史记录还需要用到读写数据库来掉电保存,
可以从如下的两段T5/T5L平台示例参考
CALL TEXT02          ;此处为调用的添加的变化了就触发的代码,将程序添加到此处
;............................下面的为用户添加的变化了就触发的代码
TEXT02:
                           LDWR  R0,0x1000                  ;0x1000地址放置的是屏上面要下发给设备寄存器的参数地址,例如数据录入
                          MOVXR   R50,1,1                        ;DGUS变量地址1000数据读到os R10,R11
                          TESTS     R50,R150,2                ;
                          IJNE        R0,0, 变化1                ;R0=0就会往下执结束os,
                          GOTO      TEXT1                        ;
变化1:                MOV        R50,R150,2                ;将R10的值给R150变成一样,恢复用于下次比较
                          CALL   Save_Data    ;
                         LDWR      R0,0X3000                ;0x3000地址配置于22.bin文件用于配置的02模式下的地址写入0x005A触发写指令操作
                          LDWR    R10,005AH                ;
                         MOVXR   R10,0,1                  ;005A写入用于触发modbus写指令
TEXT1:             NOP
                        RET
;............................下面的为代码写法仅仅是将0x1000起始的2个字数据保存到数据库地址0x001000。;如果是历史数据累加地址保存,请按照用户根据自己实际需求更改代码。
Save_Data :      ;此处为参考数据库的保存写法。
      LDWR    R0,0008H
     LDWR    R10,A500H
     LDWR    R12,1000H
     LDWR    R14,1000H
     LDWR    R16,0002H
     MOVXR   R10,0,4
   LOOP2:                ;判断数据库写操作是否完成
     LDWR    R0,0008H
     MOVXR   R10,1,1
     IJNE    R10,0,LOOP2
;保存结束:
     RET
回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-3 15:48:37 | 显示全部楼层
DWIN-ARK 发表于 2020-3-3 11:36
历史记录还需要用到读写数据库来掉电保存,
可以从如下的两段T5/T5L平台示例参考
CALL TEXT02          ; ...

我拿数据变量显示正确,好像时间变量显示的有问题,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-8-22 09:19 , Processed in 0.037980 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表