一、從機代碼
將從機心跳設置爲1S
/* index 0x1017 : Producer Heartbeat Time. */
UNS16 slave_objdict_obj1017 = 1000; /* 0 */
subindex slave_objdict_Index1017[] =
{
{ RW, uint16, sizeof (UNS16), (void*)&slave_objdict_obj1017, NULL }
};
二、主機代碼
/* index 0x1016 : Consumer Heartbeat Time. */
UNS8 master_objdict_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/
UNS32 master_objdict_obj1016[] =
{
0x107D0 /* 67536 */
};
主機根據0x1016索引內設置的值對從機進行心跳檢測,主機一的值爲0x107D0,他的類型是32位的,前16位代表從機號,後16位爲檢查時間。0x107D0的意思是從機一檢測時間爲0x07d0也就是2S。
三、如何知道從機丟失
主機根據索引0x1016中設置的時間對從機進行檢測,當從機丟失後會進入回調函數:
void _heartbeatError(CO_Data* d, UNS8 heartbeatID){heartbeat_error(d,heartbeatID);}
其中d爲CO_Data ,heartbeatID爲從機ID值。
四、源碼分享
主機檢測從機丟失源碼