[嵌入式linux]

两个相同产品间的并机设计

[复制链接]
606|2
手机看帖
扫描二维码
随时随地手机跟帖
liuzhemin22|  楼主 | 2019-2-19 22:24 | 显示全部楼层 |阅读模式
单片机并机策略设计
采用三种方法:
1、随时自动接入新的slave,功率也自动加,master可以在slave并入系统后,可以允许slave开强电
2、Master第一次开机后,启动一个定时计数值,此时同时允许自动接入新的slave,在N秒后不再允许新接入slave,此时再逐个发送允许slave开强电的命令,等待M秒后,上报给PCS当前功率(或者总容量),然后再重新自动接入新的slave
3、随时自动接入新的slave,功率也自动加,master可以在slave并入系统后,可以允许slave开强电,等待M秒后,上报给PCS当前功率(或者总容量)
当前只考虑并机未使能的情况:
当前只考虑并机使能的情况:
第一种方案详细设计:
1、并机协商
1.1master协商:
1、pack开机后读取并机使能位和当前的PACK_ID值,确认本机是作为master使用还是从机使用(假设本机为master,并开强电)
2、主动周期性(周期1S)的向外发送一个“发现报文”(广播报文,目的:用于发现是否有未并入系统的报文,已经并入系统的slave不响应该报文);
3、接收到slave的“发现响应报文”(单播报文,携带了slave的pack_id和Sn),master将pack_id和Sn与本地记录的pack_id和Sn进行比较:
a、若接收到的pack_id为000b(该ID值为master ID),说明本机外存在另一个master,
  此时,主动发送“禁止系统开强电的报文”(广播报文,发送3次,不接收响应),
并主动发送一个告警报文给PCS,告知用户处理
     b、若本地已经存在了pack_id或者Sn,则发送“禁止该slave并入系统的报文”(单             播报文),已经并入系统的slave,不响应该命令,并上报告警报文给PCS(存在一          台相同pack idSnslave,尝试并入系统)
     c、若本地没有记录过该pack_idSn,则进入第4步处理
4、发送一个“允许slave并入系统的报文”(单播报文,发送3次),等待接收slave并
入系统的响应报文
5、N秒内,接收到了slave的并机响应报文,则进入正常工作流程,如果没有接收到,    则发送“禁止该slave并入系统的报文”(单播报文,发送3次)
6、进入下一个任务状态
1.2slave协商:
1、等待接收master的发现报文,接收到该报文后,向PCS发送一个携带pack_id和Sn      的“发现响应报文”(单播报文,发送3次)
2、等待接收master的是否允许接入系统的报文,N秒内未接收到该报文,则重新进入    初始状态(未协商的状态),若接收到报文:
      a、不允许slave并入系统,则slave静默M秒后,重新进入初始状态(未协商的状         态)
      b、允许slave并入系统,则向PCS发送一个并机响应报文(单播报文,发送3次),
         slave进入下一个任务状态
2、充放电管理(这一部分按照沈正斌的方案处理)
2.1master
1、周期性发送读取slave电压的报文
2、N秒内(规定次数)未接收到slave的电压响应 报文,上报PCS降功率(或降容量)            的报文,再发送一个踢该slave出并机系统的报文(单播报文,发送3次),删除本            地记录的slave消息
3、获取slave的其它状态消息也是周期性的发送,按照主从通信的响应方式
2.2slave
1、接收到matser允许强电输出的报文,则进行充放电自检,自检OK并开强电后再回馈一个已开强电的报文给master(单播报文,发送3次),若自检不OK回馈一个开强电失败的报文给master(单播报文,发送3次)
2、其它命令采用相同的方法处理
3、若本机因为故障或者其它原因需要关闭强电输出,紧急发送一个故障告警和关强电的报文给master(单播报文,发送3次)
3、系统关机处理
3.1master
1、master首先关强电输出,并发送一个关所有slave强电输出的报文(广播报文,发
送3次)
2、关闭单个slave强电输出操作:发送一个关slave强电输出的报文(单播报文,发送
3次),
3.2slave
1、接收到一个关所有slave强电输出的报文,则马上关闭强电输出
2、接收到master关闭本slave强电输出的报文,则马上关闭强电输出,并发送一个关      闭强电输出的响应报文(单播报文,发送3次)
3、M秒内未接收到任何master的报文(心跳报文或者读数据报文),则主动上报一个slave退出系统的报文(单播报文,发送3次),延时K秒后,关闭强电输出
4、心跳报文处理
该报文的目的是让主机知道slave还存在于系统中,可以对slave进行部分操作(该部分也可以不存在,而是由master获取slave信息来处理)
4.1master
1、周期性的发送一个心跳报文
2、N周期内未接收到slave的心跳响应报文,则上报PCS降功率(或降容),并发送一个踢slave出并机系统的报文(单播报文,发送3次),并删除本机记录的slave信息
4.2slave
1、M周期内未接收到master的心跳报文,则关闭强电输出,上报master本机关强电
报文(单播报文,发送3次),并进入初始状态
2、接收到master心跳报文,则马上回馈一个心跳响应报文
第二种方案详细设计:
1、并机协商
1.1master协商:
1、pack开机后读取并机使能位和当前的PACK_ID值,确认本机是作为master使用还是从机使用;
2、确认本机为master后,记录当前的计数值Last_Ticks(禁止开强电)
3、主动周期性(周期1S)的向外发送一个“发现报文”(广播报文,目的:用于发现
是否有未并入系统的报文,已经并入系统的slave不响应该报文);
4、接收到slave的“发现响应报文”(单播报文,携带了slave的pack_id和Sn),master
将pack_id和Sn与本地记录的pack_id和Sn进行比较:
b、若接收到的pack_id为000b(该ID值为master ID),说明本机外存在另一个master,
  此时,主动发送“禁止系统开强电的报文”(广播报文,发送3次,不接收响应),
并主动发送一个告警报文给PCS,告知用户处理
     b、若本地已经存在了pack_id或者Sn,则发送“禁止该slave并入系统的报文”(单             播报文),已经并入系统的slave,不响应该命令,并上报告警报文给PCS(存在一          台相同pack idSnslave,尝试并入系统)
     c、若本地没有记录过该pack_idSn,则进入第4步处理
5、发送一个“允许slave并入系统的报文”(单播报文,发送3次),等待接收slave并
入系统的响应报文
6、N秒内,接收到了slave的并机响应报文,则进入正常工作流程,如果没有接收到,    则发送“禁止该slave并入系统的报文”(单播报文,发送3次)
7、读取当前的计数值Cur_Ticks,若Cur_Ticks -Last_Ticks > M秒,则退出该任务,进入
下一个任务,否则继续搜索是否有新的slave需要接入
1.2slave协商:
1、等待接收master的发现报文,接收到该报文后,向PCS发送一个携带pack_id和Sn      的“发现响应报文”(单播报文,发送3次)
2、等待接收master的是否允许接入系统的报文,N秒内未接收到该报文,则重新进入    初始状态(未协商的状态),若接收到报文:
      a、不允许slave并入系统,则slave静默M秒后,重新进入初始状态(未协商的状         态)
      B、允许slave并入系统,则向PCS发送一个并机响应报文(单播报文,发送3次),
         slave进入下一个任务状态
2、获取slave电压
2.1master
1、进入该任务时,记录本地的计数值Last_Ticks,并周期性发送读取slave电压的报文
2、N秒内(规定次数)未接收到slave的电压响应 报文,发送一个踢该slave出并机系统的报文(单播报文,发送3次),删除本地记录的slave消息
3、收到slave的电压报文后,则进行记录
4、读取当前的Cur_Ticks值,若Cur_Ticks -Last_Ticks > M秒或者读取到所有已经并入系
统的slave的电压报文,则进入下一个任务,否则继续读取还未获取到的slave电压报
文信息
2.2slave
1、等待接收master的读取电压信息的报文,若2*N秒内未获取到该报文,则发送一个
本机退出并机系统的报文给master(单播报文,发送3次),并回复到初始状态
2、接收到master的读取电压信息的报文,将本机的电压信息上报给master(单播报文,       发送3次)
3、开强电处理
3.1master
1、master给符合开强电的slave发送给强电的报文(单播报文,发送3次)
2、N秒内未接收到slave的开强电成功的响应报文,说明开强电失败,则发送踢除slave
的报文(单播报文,发送3次)
3、M秒后,上报PCS当前可以输出的最大功率(或最大容量)
3.2slave
1、2*N秒内未接收到master开强电命令,则上报master退出并机系统的报文,进入
到初始状态
2、接收到master开强电命令后,自检本机是否允许开强电,如果允许开强电则开强电   并发送开强电成功的响应报文给master,否则发送开强电不成功的响应报文(单播  
报文,发送3次),本处不发送故障报文,故障信息由master主动读取
3、若本机因为故障或者其它原因需要关闭强电输出,紧急发送一个故障告警和关强电    的报文给master(单播报文,发送3次)
4、充放电管理(这一部分按照沈正斌的方案处理)
4.1master
1、周期性发送读取slave电压的报文
2、N秒内(规定次数)未接收到slave的电压响应 报文,上报PCS降功率(或降容量)            的报文,再发送一个踢该slave出并机系统的报文(单播报文,发送3次),删除本            地记录的slave消息
3、获取slave的其它状态消息也是周期性的发送,按照主从通信的响应方式
4.2slave
1、接收到matser允许强电输出的报文,则进行充放电自检,自检OK并开强电后再回馈一个已开强电的报文给master(单播报文,发送3次),若自检不OK回馈一个开强电失败的报文给master(单播报文,发送3次)
2、其它命令采用相同的方法处理
3、若本机因为故障或者其它原因需要关闭强电输出,紧急发送一个故障告警和关强电的报文给master(单播报文,发送3次)
5、系统关机处理
5.1master
1、master首先关强电输出,并发送一个关所有slave强电输出的报文(广播报文,发
送3次)
2、关闭单个slave强电输出操作:发送一个关slave强电输出的报文(单播报文,发送
3次),
5.2slave
1、接收到一个关所有slave强电输出的报文,则马上关闭强电输出
2、接收到master关闭本slave强电输出的报文,则马上关闭强电输出,并发送一个关      闭强电输出的响应报文(单播报文,发送3次)
3、M秒内未接收到任何master的报文(心跳报文或者读数据报文),则主动上报一个slave退出系统的报文(单播报文,发送3次),延时K秒后,关闭强电输出
6、心跳报文处理
该报文的目的是让主机知道slave还存在于系统中,可以对slave进行部分操作(该部分也可以不存在,而是由master获取slave信息来处理)
6.1master
1、周期性的发送一个心跳报文
2、N周期内未接收到slave的心跳响应报文,则上报PCS降功率(或降容),并发送一个踢slave出并机系统的报文(单播报文,发送3次),并删除本机记录的slave信息
6.2slave
1、M周期内未接收到master的心跳报文,则关闭强电输出,上报master本机关强电
报文(单播报文,发送3次),并进入初始状态
2、接收到master心跳报文,则马上回馈一个心跳响应报文
3种方案详细设计:
1、并机协商
1.1master协商:
1、pack开机后读取并机使能位和当前的PACK_ID值,确认本机是作为master使用还是    从机使用;
2、确认本机为master后,记录当前的计数值Last_Ticks(禁止开强电)
3、主动周期性(周期1S)的向外发送一个“发现报文”(广播报文,目的:用于发现      是否有未并入系统的报文,已经并入系统的slave不响应该报文);
4、接收到slave的“发现响应报文”(单播报文,携带了slave的pack_id和Sn),master   将pack_id和Sn与本地记录的pack_id和Sn进行比较:
c、若接收到的pack_id为000b(该ID值为master ID),说明本机外存在另一个master,
  此时,主动发送“禁止系统开强电的报文”(广播报文,发送3次,不接收响应),
并主动发送一个告警报文给PCS,告知用户处理
     b、若本地已经存在了pack_id或者Sn,则发送“禁止该slave并入系统的报文”(单             播报文),已经并入系统的slave,不响应该命令,并上报告警报文给PCS(存在一          台相同pack idSnslave,尝试并入系统)
     c、若本地没有记录过该pack_idSn,则进入第4步处理
5、发送一个“允许slave并入系统的报文”(单播报文,发送3次),等待接收slave并
入系统的响应报文
6、N秒内,接收到了slave的并机响应报文,则进入下一个状态处理,如果没有接收到,        则发送“禁止该slave并入系统的报文”(单播报文,发送3次)1.2、slave协商:
1.2slave协商:
1、等待接收master的发现报文,接收到该报文后,向PCS发送一个携带pack_id和Sn      的“发现响应报文”(单播报文,发送3次)
2、等待接收master的是否允许接入系统的报文,N秒内未接收到该报文,则重新进入    初始状态(未协商的状态),若接收到报文:
      a、不允许slave并入系统,则slave静默M秒后,重新进入初始状态(未协商的状         态)
      B、允许slave并入系统,则向PCS发送一个并机响应报文(单播报文,发送3次),
         slave进入下一个任务状态
2、获取slave电压
2.1master
1、进入该状态时,周期性发送读取slave电压的报文
2、N秒内(规定次数)未接收到slave的电压响应 报文,发送一个踢该slave出并机系统的报文(单播报文,发送3次),删除本地记录的slave消息
3、收到slave的电压报文后,则进行记录
4、读取当前的Cur_Ticks值,若Cur_Ticks -Last_Ticks > M秒或者读取到所有已经并入系
统的slave的电压报文,则进入下一个任务,否则继续读取还未获取到的slave电压报
文信息
2.2slave
1、等待接收master的读取电压信息的报文,若2*N秒内未获取到该报文,则发送一个
本机退出并机系统的报文给master(单播报文,发送3次),并回复到初始状态
2、接收到master的读取电压信息的报文,将本机的电压信息上报给master(单播报文,       发送3次)
3、开强电处理
3.1master
1、master给符合开强电的slave发送给强电的报文(单播报文,发送3次)
2、N秒内未接收到slave的开强电成功的响应报文,说明开强电失败,则发送踢除slave
的报文(单播报文,发送3次)
3、M秒后,上报PCS当前可以输出的最大功率(或最大容量)
3.2slave
1、2*N秒内未接收到master开强电命令,则上报master退出并机系统的报文,进入
到初始状态
2、接收到master开强电命令后,自检本机是否允许开强电,如果允许开强电则开强电   并发送开强电成功的响应报文给master,否则发送开强电不成功的响应报文(单播  
报文,发送3次),本处不发送故障报文,故障信息由master主动读取
3、若本机因为故障或者其它原因需要关闭强电输出,紧急发送一个故障告警和关强电    的报文给master(单播报文,发送3次)
4、充放电管理(这一部分按照沈正斌的方案处理)
5、系统关机处理
5.1master
1、master首先关强电输出,并发送一个关所有slave强电输出的报文(广播报文,发
送3次)
2、关闭单个slave强电输出操作:发送一个关slave强电输出的报文(单播报文,发送
3次),
5.2slave
1、接收到一个关所有slave强电输出的报文,则马上关闭强电输出
2、接收到master关闭本slave强电输出的报文,则马上关闭强电输出,并发送一个关      闭强电输出的响应报文(单播报文,发送3次)
3、M秒内未接收到任何master的报文(心跳报文或者读数据报文),则主动上报一个slave退出系统的报文(单播报文,发送3次),延时K秒后,关闭强电输出
6、心跳报文处理
该报文的目的是让主机知道slave还存在于系统中,可以对slave进行部分操作(该部分也可以不存在,而是由master获取slave信息来处理)
6.1master
1、周期性的发送一个心跳报文
2、N周期内未接收到slave的心跳响应报文,则上报PCS降功率(或降容),并发送一个踢slave出并机系统的报文(单播报文,发送3次),并删除本机记录的slave信息
6.2slave
1、M周期内未接收到master的心跳报文,则关闭强电输出,上报master本机关强电
报文(单播报文,发送3次),并进入初始状态
2、接收到master心跳报文,则马上回馈一个心跳响应报文
                                                                                                         
此部分内容已被设置为付费内容,您可以在支付 2 元 人民币后浏览本楼层全部付费内容点击购买

相关帖子

二九结狐六体| | 2019-2-20 07:58 | 显示全部楼层

使用特权

评论回复
一看你这个就是电源组模,还那么神秘的付费2元,你慢慢的两元玩吧,这种一般组模用辅助母线均衡调整,总线通讯用于辅助功能

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

1

粉丝