plc连接逻辑修改
This commit is contained in:
1 parent
f406325721
commit
cf65689558
2 files changed
+24
-4
No files matched your search
@@ -5,7 +5,7 @@
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1141698828038963161" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1336382746191491235" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
||||
+23
-3
@@ -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,16 +67,27 @@ 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);
|
||||
int mrd = mb_read_regs(hinst, 6000, AI_TABLE_SIZE, r_regsD);
|
||||
if (mrd > 0)
|
||||
{
|
||||
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
|
||||
u16 w_regsD [AO_TABLE_SIZE];
|
||||
@@ -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)//线程服务函数
|
||||
|
||||
Reference in new issue
Block a user