diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 4b8021f..65cd202 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/applications/PLC_link.c b/applications/PLC_link.c
index d32ded6..94ba06f 100644
--- a/applications/PLC_link.c
+++ b/applications/PLC_link.c
@@ -47,6 +47,10 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
for (int i = 0; i < DI_TABLE_SIZE; i++) {
di_table[i].current_state = (r_buffer[i / 8] >> (i % 8)) & 1;
}
+ }else
+ {
+ rt_thread_mdelay(500);
+ return;
}
// 输出 m0256 -> RTU 2256
@@ -63,15 +67,26 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
}
}
// 写入 Modbus
- mb_write_bits(hinst, 2256, DO_TABLE_SIZE, w_buffer);
+ int mwy = mb_write_bits(hinst, 2256, DO_TABLE_SIZE, w_buffer);
+ if (mwy <= 0)
+ {
+ rt_thread_mdelay(500);
+ return;
+ }
//输入寄存器d0->6000
u16 r_regsD[AI_TABLE_SIZE];
// 读 Modbus
- mb_read_regs(hinst, 6000, AI_TABLE_SIZE, r_regsD);
- for (int i = 0; i < AI_TABLE_SIZE; i++)
+ int mrd = mb_read_regs(hinst, 6000, AI_TABLE_SIZE, r_regsD);
+ if (mrd > 0)
{
- ai_table[i].current_Value = r_regsD[i];
+ for (int i = 0; i < AI_TABLE_SIZE; i++)
+ {
+ ai_table[i].current_Value = r_regsD[i];
+ }
+ }else {
+ rt_thread_mdelay(500);
+ return;
}
//输出寄存器d100->6100
@@ -81,7 +96,12 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
w_regsD [i] = ao_table[i].current_Value;
}
// 写入 Modbus
- mb_write_regs(hinst, 6100, AO_TABLE_SIZE, w_regsD);
+ int mwd = mb_write_regs(hinst, 6100, AO_TABLE_SIZE, w_regsD);
+ if (mwd > 0)
+ {
+ rt_thread_mdelay(500);
+ return;
+ }
}
static void mb_plc_thread(void *args)//线程服务函数