分享PLC与HMI时间同步 点击:639 | 回复:9



tomyan302

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 36回
  • 年度积分:0
  • 历史总积分:219
  • 注册:2010年11月18日
发表于:2019-12-10 18:44:02
楼主

通过SE中时间标签,并关联PLCsystemtime,通过VBA实现,详见附件!



可是怎么上传附件呢??




huoshi

  • 精华:0帖
  • 求助:22帖
  • 帖子:347帖 | 2576回
  • 年度积分:517
  • 历史总积分:23145
  • 注册:2020年3月27日
发表于:2019-12-10 19:58:07
1楼

学习学习,谢谢老师分享

robingsion

  • [版主]
  • 精华:20帖
  • 求助:71帖
  • 帖子:1936帖 | 3670回
  • 年度积分:936
  • 历史总积分:54944
  • 注册:2011年4月11日
发表于:2019-12-10 20:35:32
2楼

没有上传附件还分享什么啊

新鲜血液

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 248回
  • 年度积分:118
  • 历史总积分:1238
  • 注册:2019年5月28日
发表于:2019-12-11 08:47:13
3楼


回复内容:

对: huoshi 学习学习,谢谢老师分享 内容的回复!

你这注水也太明显了,你应该说请老师尽快分享。-------------------------


tomyan302

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 36回
  • 年度积分:0
  • 历史总积分:219
  • 注册:2010年11月18日
发表于:2019-12-11 14:14:52
4楼

Option Explicit


Private Const SE_PRIVILEGE_ENABLED = &H2

Private Const TOKEN_ADJUST_PRIVILEGES = &H20

Private Const TOKEN_QUERY = &H8

Private Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"


Private Type LUID

    LowPart As Long

    HighPart As Long

End Type

Private Type LUID_AND_ATTRIBUTES

    pLuid As LUID

    Attributes As Long

End Type

Private Type TOKEN_PRIVILEGES

    PrivilegeCount As Long

    Privileges(1) As LUID_AND_ATTRIBUTES

End Type

Private Type SYSTEMTIME

        wYear As Integer

        wMonth As Integer

        wDayOfWeek As Integer

        wDay As Integer

        wHour As Integer

        wMinute As Integer

        wSecond As Integer

        wMilliseconds As Long

End Type


Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long

Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long

Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, ByVal PreviousState As Long, ByVal ReturnLength As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Declare Function SetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) As Long



 'Private Sub Button1_Released()

 Private Sub settime()

    Dim hToken As Long

    Dim TokenPrivilegeLuid As LUID

    Dim TokenPrivilege As TOKEN_PRIVILEGES

    Dim dwTime As SYSTEMTIME

    

    Dim temp1 As TagGroup '添加变量组,向组内添加变量


Set temp1 = CreateTagGroup(Me.AreaName)


temp1.Add ("time_year")   '所添加的变量在SE 中 HMI Tag中建立并关联PLC中wallclocktime


temp1.Add ("time_month")


temp1.Add ("time_day")


temp1.Add ("time_hour")


temp1.Add ("time_minute")


temp1.Add ("time_second")


temp1.Add ("time_milliseconds")

     

    '检查SE_SYSTEMTIME_NAME权限,该权限必须为Enable

    OpenProcessToken GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken

    LookupPrivilegeValue vbNullString, SE_SYSTEMTIME_NAME, TokenPrivilegeLuid

    With TokenPrivilege

        .PrivilegeCount = 1

        .Privileges(0).pLuid = TokenPrivilegeLuid

        .Privileges(0).Attributes = SE_PRIVILEGE_ENABLED

    End With

    AdjustTokenPrivileges hToken, False, TokenPrivilege, LenB(TokenPrivilege), 0, 0

    CloseHandle hToken

     

    With dwTime

        .wYear = temp1.Item("time_year").Value


        .wMonth = temp1.Item("time_month").Value


        .wDay = temp1.Item("time_day").Value


        .wHour = temp1.Item("time_hour").Value


        .wMinute = temp1.Item("time_minute").Value


        .wSecond = temp1.Item("time_second").Value


        .wMilliseconds = temp1.Item("time_milliseconds").Value

        

      

    End With

 

     

    If SetLocalTime(dwTime) = 0 Then

        MsgBox "修改时间失败"

    End If

End Sub




Private Sub Display_Load()


Call settime '加载画面时调用自定义settime


End Sub


GKstudying

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1019帖 | 7217回
  • 年度积分:1194
  • 历史总积分:18802
  • 注册:2008年11月11日
发表于:2019-12-12 10:15:53
5楼

关于论坛发帖上传资料附件的操作说明

http://bbs.gongkong.com/d/201903/786833_1.shtml

楼主可以把您的资料以附件形式上传的,上面是论坛上传附件的操作说明,供你参考。

tomyan302

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 36回
  • 年度积分:0
  • 历史总积分:219
  • 注册:2010年11月18日
发表于:2019-12-12 11:09:59
6楼


回复内容:

对: GKstudying 关于论坛发帖上传资料附件的操作说明http://bbs... 内容的回复!

-------------------------

是的,但是电机选择文件后--显示不出来“添加文件”

GKstudying

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1019帖 | 7217回
  • 年度积分:1194
  • 历史总积分:18802
  • 注册:2008年11月11日
发表于:2019-12-13 16:57:07
7楼


回复内容:您是用的极速360模式吗,如果是,您换成兼容模式,

image.png

或者换成IE或谷歌浏览器试一下

对: tomyan302 回复内容:对:GKstudying 关于论坛发帖上传资... 内容的回复!

-------------------------


tomyan302

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 36回
  • 年度积分:0
  • 历史总积分:219
  • 注册:2010年11月18日
发表于:2019-12-17 11:34:27
8楼

回复内容:

对: GKstudying 回复内容:您是用的极速360模式吗,如果是,您换成兼容... 内容的回复!

-------------------------

能看到添加文件,但是添加不成功,服了!!!

vcerggkaiiv

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 24回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2014年7月18日
发表于:2020-05-08 06:53:31
9楼

论坛高手多,学习了。


热门招聘
相关主题

官方公众号

智造工程师