今天做HMI与LOGO之间的时钟同步试验成功。用HMI的时钟对LOGO的内部时钟进行同步。
硬件:
1)HMI:使用的是威纶通MT8102iE,10寸屏;
2)LOGO:12/24RCEo;订货号:6ED1 052-2MD08-0BA0
需要解决的主要问题:
1)HMI与LOGO时钟数据长度不同:HMI为字,LOGO中为字节;
2)年月日时分秒地址的排列顺序相反;
LOGO的内部时钟地址.zip
HMI中整数形式时钟地址.zip
3)HMI中的【年】采用的是4位数,LOGO中的【年】采用的是2位数。如:HMI的2020年对应LOGO的20年。
4)LOGO中没有【字】转【字节】以及【传送指令】;
方法简述:
1)在HMI中,采用 【资料传输(背景)】中创建的【定时资料传输】,将HMI中的整数格式的实时时钟时间传送至LOGO中。
HMI传至LOGO来的时钟数据保存地址(例如:下面的地址)
VW800:秒,低字节VB801,整数
VW802:分,低字节VB803,整数
VW804:时,低字节VB805,整数
VW806:日,低字节VB807,整数
VW808:月,低字节VB809,整数
VW810:年,整数(四位数)
VW812:星期,低字节VB813,整数。0=星期天,1=星期一,2=星期二,3=星期三,4=星期四,5=星期五,6=星期六
HMI的时钟传送至LOGO用的 背景资料传输属性配置.zip
注:资料传输属性配置中的【间隔】设置为1.0秒时,刚执行同步后的二者的时钟误差不超过1秒。【间隔】为0.2秒时误差约0.2秒内。
2)LOGO编程
A、将4位数字表示的【年】转换为2位数。方法:用【算数指令】将VW810的数据减去2000,存放至VW814,其中的低字节VB815内的数据就是转换后的2位数【年】的数据;【算数指令】的Aq映射地址为VW814。
注1:2100年至2199年时,算数指令中V2(P2)的值应改为2100;、2200年至2299年时算数指令中V2(P2)的值应改为2200,以此类推。
注2:算数指令的V1(P1)使用参数映射(映射地址VW810)时,必须将其值的设置与HMI中的年【年】数据相同。否则,无法在线监控程序。在线监控链接链接时报程序不一致。
B、用异步脉冲做一个时钟,定时同步时钟用;
注:异步脉冲的周期时间,不影响刚执行同步后的二者的时钟误差。
3)在HMI中,采用6个 窗口 触发式资料传输 将LOGO中的对应字节整数格式的时钟数据传送至LOGO中VB985至VB990中;放置6个触发式资料传输元件的界面(HMI的组态界面)打开时,时钟同步才会有效。
秒同步用的触发式资料传输(窗口)属性配置.zip
6个【触发式资料传输(窗口)属性配置】的来源地址与目标地址按对应关系设置,触发地址相同。
秒:VB801的数据传至VB990;
分:VB803的数据传至VB989;
时:VB805的数据传至VB988;
日:VB807的数据传至VB987;
月:VB809的数据传至VB986;
年:VB815的数据传至VB985;
4)LOGO程序及参数VM映射:
20201010 时钟同步试验.zip
求助:LOGO时钟地址VB985至VB990的写入有次数限制吗?【已确认:没有限制】
如果没有限制,程序中的异步脉冲时钟部分,可以用【6个 背景资料传输】取代【 窗口 触发式资料传输】,时钟同步间隔时间可以在0.2秒至25.5秒范围设置。建议全部【间隔时间】设为0.2秒至1.0秒。