迪文科技论坛

 找回密码
 立即注册
搜索
查看: 3899|回复: 15

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

[复制链接]

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
发表于 2020-1-29 20:24:44 | 显示全部楼层 |阅读模式
本帖最后由 王运芳 于 2020-1-29 21:03 编辑

我们现在使用的是迪文智能屏DGUS 2用的是MODBUS通讯协议,屏为主机,现在想把屏的时间与PLC统一,即用屏的时间去修正PLC的时间,如何写程序OS   DMT80600T080_18WT  用西门子S7-200从机去读取屏的RTC时间

回复

使用道具 举报

82

主题

153

回帖

2793

积分

超级版主

Rank: 8Rank: 8

积分
2793
发表于 2020-1-30 11:09:34 | 显示全部楼层
本帖最后由 神秘の宅叔 于 2020-1-30 11:16 编辑

K600+平台的RTC时间显示并存于屏幕的RTC时间相关寄存器,0x20~0x26寄存器分别存放了 年、月、日、星期、时、分、秒。
可以参考如下步骤:
1、os的MOVDR指令将RTC值给到os寄存器,MOVXR指令将os寄存器的值给入vp变量地址。(这一过程或许根据用户的情况还设计到7个8bit的RTC时间寄存器的移位、HEX时间码的处理,可以参考os的《基于DWIN_OS指令的理解与应用.pdf 》文档得的指令具体应用例子。)
2、按键触摸:一般用迪文配置modbus指令的02模式按键触发modbus指令,将vp地址的数据下发到PLC的相关寄存器;
     自动下发: 如果要用固定1秒的时间可以用os的200ms周期*5的写法下发,或者os判断秒秒的值变化后触发相关地址os程序中 迪文配置modbus指令的02模式的地址 写入0x005A后下发。
     也可以用01模式采用固定页面触发,设置等待超时时间1000ms频率固定发送。

回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-1-30 14:25:01 | 显示全部楼层
谢谢,我回去试验一下
回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-1 16:06:00 | 显示全部楼层
; DWIN OS
   LDWR   R0,0X0010;
  MOVDR  0X20,R20,7;将年月日星期时间读入
  MOV    R24,R23,1;将时读到R23
  MOV    R25,R24,1;将分读到R24
  MOV    R26,R25,1;将秒读到R25
  LDBR   R40,0,4;将R40、R41、R42、R43清零
  MOV    R20,R40,1;将年读到R40
  BCDHEX R40,R41,0X11;将年由BCD码转化为16进制数
  MOV    R41,R20,1;将年读到R20
  MOV    R21,R40,1;将月读到R40
  BCDHEX R40,R41,0X11;将月由BCD码转化为16进制数
  MOV    R41,R21,1;将月读到R21
  MOV    R22,R40,1;将日读到R40
  BCDHEX R40,R41,0X11;将日由BCD码转化为16进制数
  MOV    R41,R22,1;将日读到R22
  MOV    R23,R40,1;将时读到R40
  BCDHEX R40,R41,0X11;将时由BCD码转化为16进制数
  MOV    R41,R23,1;将时读到R23
  MOV    R24,R40,1;将分读到R40
  BCDHEX R40,R41,0X11;将分由BCD码转化为16进制数
  MOV    R41,R24,1;将分读到R24
  MOV    R25,R40,1;将秒读到R40
  BCDHEX R40,R41,0X11;将秒由BCD码转化为16进制数
  MOV    R41,R25,1;将秒读到R25
  MOVXR  R20,0,6;把时间送到触摸屏的0X0010
END
这个程序显出来不对,看哪里有问题
回复

使用道具 举报

0

主题

50

回帖

396

积分

中级会员

Rank: 3Rank: 3

积分
396
发表于 2020-3-2 15:33:38 | 显示全部楼层
本帖最后由 z6642008 于 2020-3-2 15:35 编辑
王运芳 发表于 2020-3-1 16:06
; DWIN OS
   LDWR   R0,0X0010;
  MOVDR  0X20,R20,7;将年月日星期时间读入

0X0010是时间变量显示还是什么控件,只有时间变量显示才是发送什么显示什么的。

回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-2 18:29:49 | 显示全部楼层
z6642008 发表于 2020-3-2 15:33
0X0010是时间变量显示还是什么控件,只有时间变量显示才是发送什么显示什么的。

...

是显示时间的变量
回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-2 18:48:27 | 显示全部楼层
王运芳 发表于 2020-3-2 18:29
是显示时间的变量

是想显示年月日时分秒的时间变量
回复

使用道具 举报

0

主题

1034

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11122
发表于 2020-3-2 20:44:15 | 显示全部楼层
王运芳 发表于 2020-3-2 18:48
是想显示年月日时分秒的时间变量

您0X0010使用的是时间变量显示这个控件吧?您发出来的那段OS主要部分是使用的我们OS说明文档中的写法,是没有问题的,不过最后一句MOVXR  R20,0,6要改成OVXR R20,0,3,有效的只有6个字节。
回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-3 00:20:03 | 显示全部楼层
DWIN-ARK 发表于 2020-3-2 20:44
您0X0010使用的是时间变量显示这个控件吧?您发出来的那段OS主要部分是使用的我们OS说明文档中的写法,是 ...

按你的编程,不成OVXR编译不过

本帖子中包含更多资源

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

x
回复

使用道具 举报

3

主题

13

回帖

130

积分

注册会员

Rank: 2

积分
130
 楼主| 发表于 2020-3-3 00:25:50 | 显示全部楼层
王运芳 发表于 2020-3-3 00:20
按你的编程,不成OVXR编译不过

现在文件是新的

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-15 02:53 , Processed in 0.026648 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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