(1)工控机切换
工控机实现双机切换功能的进程是alter_main,负责计算机这一级的切换,不涉及通道级切换功能,也就是说出现设定需要切换的情况,主机就会自动重启,而备机升级为主机。在进行对进程的监护时,如果被监护的进程不再存在,alter_main即负责重启机器。这样的功能使得每一个应用进程都可以简单地使用退出运行的办法使得机器重新启动。
alter_main对进程的监护通过监视进程心跳的方法来实现,这要求所有被监护的进程都能够向切换进程发心跳。每个进程启动后,都要读一下切换配置文件,如果切换配置文件存在,就发心跳,如果切换配置文件不存在,就不发心跳。
alter_main的任务是对某个或某些进程进行监护,处理方式(即该进程退出时需要进行的操作)可能不同,比如重启该进程、重启计算机等,可以在配置文件中配置。若被监护进程退出了,就会按照配置的监护方式进行操作。重新启动计算机的方式采用看门狗控制方式,这样若切换进程自身由于某种原因而不能正常工作,也会自动重新启动计算机。
对于不同的应用情况和不同的通信介质,在需要切换时进行的操作是不同的。对于工控机软件的远动应用,向上发送数据的进程是所有的规约进程。不同的规约进程调度通信的方式不同,基本分为以太网和串口两种。对于不同的通信介质,热备时的连接方式不同,切换时对通道的操作也不相同。向下发送是通过lonctrl进行的。对下的发送比较好处理,在刚启动的时候按默认为备机处理,当收到切换进程发来的切换为主机的消息后,就能够变备机为主机,真正执行发送命令。
对调度的连接如果是通过串口连接的,则在进行硬件连接的时候就要将两台工控机连接,同一个调度的串口的接收线RX共同连到调度的发送线TX上,而发送线TX分别经过各自的开入/开出卡开出,再共同连到调度的接收线RX上。这两个开出就是切换操作的开关,刚启动的时候按默认为备机处理,将控制发送线的开出置为0,使连接断开。若需要升级为主机,则将该开出置为1,使本机的串口可以发送数据。(www.xing528.com)
对调度的连接如果是通过以太网连接的,那么备机先不启动规约进程,待切机的时候再启动。由于DBMS(数据库管理系统)中数据的更新是由内核函数完成的,启动规约进程后更新规约,RTU库得到的就已经是最新的值了,不会影响数据。在使用时需要区分server和client,如果工控机作为client端,那么以上操作就完全可以实现双机切换,对调度端不会有任何影响,只要调度端对来自两个IP的连接都允许就可以。但工控机若是server端,这种情况下的切换就不是只靠工控机就能够完成的了,必须有调度端或者中间连接通道上的特殊设置的配合才能完成。
(2)通道切换
双通道的切换将由进程alter_chnl实现。也就是说,出现设定需要切换的情况,主通道就会被断开,而备用通道连通,备用通道进程升级为主通道进程。
串口的双通道热备方式通常是两个通道的接收线RX均与通信目标的发送线TX连接,但两个通道的发送线TX是一个连接、一个断开,这种连接和断开的方式是可以通过开入/开出卡上的某两个开出来控制的。alter_chnl通过监护主备通道进程的方式来判断切换条件。当主通道进程异常时,就切断主通道,连通备用通道,使备用通道进程升级为主通道进程。以太网方式下的双通道热备启动方式是主通道进程启动,而备用通道进程先不启动。
与通信目标通过串口连接,alter_chnl进程应先于热备的两个进程启动,根据配置的主通道进程和备用通道进程对应的情况将相应两个开出一个合、一个分,使主通道连接,备用通道断开。若主通道进程异常,就会自行退出。alter_chnl进程发现主通道进程不存在时,就会将两个开出状态改变,先断开主通道,再连接备用通道,使备用通道的进程能够向上发送信息。在alter_chnl进程中添加对看门狗的操作,若alter_chnl进程自身由于某种原因而不能正常工作,就会自动重新启动计算机。与调度通过以太网连接,alter_chnl进程发现主通道进程不存在时,就会将备用通道进程启动。如果备用进程也出现异常,alter_chnl进程就用看门狗重新启动计算机。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。