Commit 45d9167d LN

IO修改。启动键改为复位按钮。

1 个父辈 91286ccb
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.IOModule.AIOBOX</name>
</assembly>
<members>
<member name="T:Asa.IOModule.AIOBOX">
<summary>
AIOBOX操作类
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.suspend">
<summary>
暂停次数
WriteDO 命令非常多时,暂停一次发送 ReadDI 或 ReadDO
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.SEND_SLEEP">
<summary>
每条命令发送的间隔
不能小于15,会出现IO接收不到的情况
小于30时,会出现接收数据连包的情况
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.NET_SLEEP">
<summary>
监听网络接收数据的间隔
必须小于SEND_SLEEP
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.TRIG_SLEEP">
<summary>
触发DIO状态事件的间隔
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.DI_Changed">
<summary>
自动读取DI委托
</summary>
<param name="box">AIOBOX</param>
<param name="sta">所有DI状态</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.DI_Changed_Event">
<summary>
自动读取DI事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.DO_Changed">
<summary>
自动读取DO委托
</summary>
<param name="box">AIOBOX</param>
<param name="sta">所有DO状态</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.DO_Changed_Event">
<summary>
自动读取DO事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.AI_Changed">
<summary>
自动读取AI委托
</summary>
<param name="box">AIOBOX</param>
<param name="val">所有AI的值</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.AI_Changed_Event">
<summary>
自动读取AI事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.AO_Changed">
<summary>
自动读取AO委托
</summary>
<param name="box">AIOBOX</param>
<param name="val">所有AO的值</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.AO_Changed_Event">
<summary>
自动读取AO事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.Log_Out">
<summary>
日志输出
</summary>
<param name="box"></param>
<param name="s"></param>
</member>
<member name="E:Asa.IOModule.AIOBOX.Log_Out_Event">
<summary>
日志输出事件
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.#ctor">
<summary>
AIOBOX
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.IP">
<summary>
IP地址
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.Port">
<summary>
ModBus端口
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.IsConn">
<summary>
是否连接
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.ErrInfo">
<summary>
错误信息
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.LogOut">
<summary>
日志输出
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)">
<summary>
设置输入端
</summary>
<param name="type">类型</param>
<param name="count">数量</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.SetOutput(Asa.IOModule.Box_Type,System.Int32)">
<summary>
设置输出端
</summary>
<param name="type">类型</param>
<param name="count">数量</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoIP(System.String)">
<summary>
自动获取IP地址,未连接前使用,必须在同一网段
</summary>
<param name="localIP">本地IP地址</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Connect">
<summary>
连接
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Close">
<summary>
关闭连接
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadInput(System.Boolean,System.Int32)">
<summary>
自动读取输入端,触发事件
</summary>
<param name="read">是否自动读取</param>
<param name="sleep">间隔,必须大于15ms</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadOutput(System.Boolean,System.Int32)">
<summary>
自动读取输出端,触发事件
</summary>
<param name="read">是否自动读取</param>
<param name="sleep">间隔,必须大于10ms</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta)">
<summary>
相反状态(ON/OFF)
</summary>
<param name="sta"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Int32)">
<summary>
读取单个DI输入状态(ON/OFF)
</summary>
<param name="add">输入地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Int32,System.Int32)">
<summary>
读取多个DI输入状态(ON/OFF)
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Int32)">
<summary>
读取单个AI模拟量的值
</summary>
<param name="add">模拟量地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Int32,System.Int32)">
<summary>
读取多个AI模拟量的值
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Int32)">
<summary>
读取单个DO输出状态(ON/OFF)
</summary>
<param name="add">输出地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Int32,System.Int32)">
<summary>
读取多个DO输出状态(ON/OFF)
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAO(System.Int32)">
<summary>
读取单个AO模拟量的值
</summary>
<param name="add">输出地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAO(System.Int32,System.Int32)">
<summary>
读取多个AO模拟量的值
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.WriteDO(System.Int32,Asa.IOModule.Box_Sta)">
<summary>
写入单个DO输出状态(ON/OFF)
</summary>
<param name="add">输出地址,从0开始</param>
<param name="sta"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.GetLocalIP">
<summary>
获取本地IPv4地址
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Send">
<summary>
发送命令
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.Receive">
<summary>
接收命令
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadSingle(System.Byte[])">
<summary>
读取写入单个DO,功能码5
</summary>
<param name="buff"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Byte[])">
<summary>
读取所有DO状态,功能码1
</summary>
<param name="buff"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Byte[])">
<summary>
读取所有DI状态,功能码2
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Byte[])">
<summary>
读取所有AI的值,功能码4
</summary>
<param name="buff"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Command">
<summary>
命令,前7个字节
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.TriggerDIO">
<summary>
触发DIO改变事件
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.LogPrint">
<summary>
日志输出线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadInput">
<summary>
自动读取输入端线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadOutput">
<summary>
自动读取输出端线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.Listen">
<summary>
监听结果线程
</summary>
</member>
<member name="T:Asa.IOModule.Box_Type">
<summary>
IO模块类型
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.DI">
<summary>
数值信号输入
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.DO">
<summary>
数字信号输出
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.AI">
<summary>
模拟量输入
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.AO">
<summary>
模拟量输出
</summary>
</member>
<member name="T:Asa.IOModule.Box_Sta">
<summary>
IO模块寄存器状态
</summary>
</member>
<member name="F:Asa.IOModule.Box_Sta.Off">
<summary>
断开,关闭,低电平
</summary>
</member>
<member name="F:Asa.IOModule.Box_Sta.On">
<summary>
闭合,打开,高电平
</summary>
</member>
<member name="T:Asa.IOModule.Reg">
<summary>
IO模块寄存器
</summary>
</member>
<member name="F:Asa.IOModule.Reg.ID">
<summary>
标识
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Text">
<summary>
文本,仅用于显示
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Address">
<summary>
寄存器地址
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Status">
<summary>
当前的状态
</summary>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(Asa.IOModule.Box_Addr)">
<summary>
寄存器,文本空,状态OFF
</summary>
<param name="address">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.String,Asa.IOModule.Box_Addr)">
<summary>
寄存器,状态OFF
</summary>
<param name="text">文本</param>
<param name="addr">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.Int32,System.String,Asa.IOModule.Box_Addr)">
<summary>
寄存器,状态OFF
</summary>
<param name="id">标志</param>
<param name="text">文本</param>
<param name="addr">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.String,Asa.IOModule.Box_Addr,Asa.IOModule.Box_Sta)">
<summary>
寄存器
</summary>
<param name="text">文本</param>
<param name="addr">地址</param>
<param name="status">状态</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.Int32,System.String,Asa.IOModule.Box_Addr,Asa.IOModule.Box_Sta)">
<summary>
寄存器
</summary>
<param name="id">标志</param>
<param name="text">文本</param>
<param name="address">地址</param>
<param name="status">状态</param>
</member>
<member name="T:Asa.IOModule.Box_Addr">
<summary>
IO模块寄存器地址
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_1">
<summary>
输入点,DI01
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_2">
<summary>
输入点,DI02
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_3">
<summary>
输入点,DI03
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_4">
<summary>
输入点,DI04
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_5">
<summary>
输入点,DI05
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_6">
<summary>
输入点,DI06
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_7">
<summary>
输入点,DI07
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_8">
<summary>
输入点,DI08
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_9">
<summary>
输入点,DI09
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_10">
<summary>
输入点,DI10
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_11">
<summary>
输入点,DI11
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_12">
<summary>
输入点,DI12
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_13">
<summary>
输入点,DI13
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_14">
<summary>
输入点,DI14
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_15">
<summary>
输入点,DI15
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_16">
<summary>
输入点,DI16
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_1">
<summary>
输出点,DO01
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_2">
<summary>
输出点,DO02
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_3">
<summary>
输出点,DO03
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_4">
<summary>
输出点,DO04
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_5">
<summary>
输出点,DO05
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_6">
<summary>
输出点,DO06
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_7">
<summary>
输出点,DO07
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_8">
<summary>
输出点,DO08
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_9">
<summary>
输出点,DO09
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_10">
<summary>
输出点,DO10
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_11">
<summary>
输出点,DO11
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_12">
<summary>
输出点,DO12
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_13">
<summary>
输出点,DO13
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_14">
<summary>
输出点,DO14
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_15">
<summary>
输出点,DO15
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_16">
<summary>
输出点,DO16
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.NONE">
<summary>
</summary>
</member>
<member name="T:Asa.IOModule.DI_Addr">
<summary>
输入端地址
</summary>
</member>
<member name="T:Asa.IOModule.DO_Addr">
<summary>
输入端地址
</summary>
</member>
</members>
</doc>
...@@ -210,34 +210,14 @@ namespace OnlineStore.ACSingleStore ...@@ -210,34 +210,14 @@ namespace OnlineStore.ACSingleStore
} foreach (string key in this.DOControlList.Keys) } foreach (string key in this.DOControlList.Keys)
{ {
IOTextControl control = DOControlList[key]; IOTextControl control = DOControlList[key];
int iov = (int)KNDManager.DOValue(key); int iov = (int)IOManager.DOValue(key);
if (iov != control.IOValue) if (iov != control.IOValue)
{ {
control.IOValue = iov; control.IOValue = iov;
control.ShowData(); control.ShowData();
} }
} }
//double ai1Value = KNDAIManager.GetAIValue(boxBean.Config.AIDevice_IP, StoreManager.Config.AIDI1_Addr);
//double ai2Value = KNDAIManager.GetAIValue(boxBean.Config.AIDevice_IP, StoreManager.Config.AIDI2_Addr);
//double ai3Value = KNDAIManager.GetAIValue(boxBean.Config.AIDevice_IP, StoreManager.Config.AIDI3_Addr);
//double ai4Value = KNDAIManager.GetAIValue(boxBean.Config.AIDevice_IP, StoreManager.Config.AIDI4_Addr);
////double ai3Value = KNDAIManager.GetAIValue(boxBean.Config.AIDevice_IP, 3);
//txtAI1.Text = ai1Value.ToString();
//txtAI2.Text = ai2Value.ToString();
//txtAI3.Text = ai3Value.ToString();
//txtAI4.Text = ai4Value.ToString();
////txtAI3.Text = ai3Value.ToString();
//txtAIResult1.Text = KNDAIManager.ConvertAI(ai1Value,boxBean.Config.AIDI1_DefaultPosition).ToString();
//txtAIResult2.Text = KNDAIManager.ConvertAI(ai2Value, boxBean.Config.AIDI2_DefaultPosition).ToString();
//txtAIResult3.Text = KNDAIManager.ConvertAI(ai3Value, boxBean.Config.AIDI3_DefaultPosition).ToString();
//txtAIResult4.Text = KNDAIManager.ConvertAI(ai4Value, boxBean.Config.AIDI4_DefaultPosition).ToString();
////txtAIResult3.Text = KNDAIManager.ConvertAI(ai3Value, boxBean.Config.AIDI3_DefaultPosition).ToString();
//txtHeight.Text = boxBean.GetHeight().ToString();
//txtSize.Text = boxBean.GetSize().ToString();
} }
private void btnReadAllDi_Click(object sender, EventArgs e) private void btnReadAllDi_Click(object sender, EventArgs e)
...@@ -246,7 +226,7 @@ namespace OnlineStore.ACSingleStore ...@@ -246,7 +226,7 @@ namespace OnlineStore.ACSingleStore
IO_VALUE value = (IO_VALUE)cmbWriteValue.SelectedIndex; IO_VALUE value = (IO_VALUE)cmbWriteValue.SelectedIndex;
int time = FormUtil.GetIntValue(txtWriteTime); int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId); int slaveId = FormUtil.GetIntValue(txtSlaveId);
KNDManager.ReadMultipleDI(deviceName, (byte)slaveId, (ushort)KNDManager.DIStartAddress, 16); IOManager.instance.ReadAllDI(deviceName, (byte)slaveId );
} }
private void btnReadAllDo_Click(object sender, EventArgs e) private void btnReadAllDo_Click(object sender, EventArgs e)
{ {
...@@ -255,7 +235,7 @@ namespace OnlineStore.ACSingleStore ...@@ -255,7 +235,7 @@ namespace OnlineStore.ACSingleStore
IO_VALUE value = (IO_VALUE)cmbWriteValue.SelectedIndex; IO_VALUE value = (IO_VALUE)cmbWriteValue.SelectedIndex;
int time = FormUtil.GetIntValue(txtWriteTime); int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId); int slaveId = FormUtil.GetIntValue(txtSlaveId);
KNDManager.ReadMultipleDO(deviceName, (byte)slaveId, (ushort)KNDManager.DoStartAddress, 16); IOManager.instance.ReadAllDO(deviceName, (byte)slaveId );
} }
private void btnOpenDoor_Click(object sender, EventArgs e) private void btnOpenDoor_Click(object sender, EventArgs e)
{ {
......
...@@ -36,6 +36,9 @@ ...@@ -36,6 +36,9 @@
<Prefer32Bit>false</Prefer32Bit> <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary"> <Reference Include="CodeLibrary">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\CodeLibrary.dll</HintPath> <HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\CodeLibrary.dll</HintPath>
</Reference> </Reference>
...@@ -60,9 +63,6 @@ ...@@ -60,9 +63,6 @@
<Compile Include="acSingleStore\AC_SA_BoxBean_Partial.cs" /> <Compile Include="acSingleStore\AC_SA_BoxBean_Partial.cs" />
<Compile Include="acSingleStore\StoreManager.cs" /> <Compile Include="acSingleStore\StoreManager.cs" />
<Compile Include="IO\AIOBOX\AIOBOXManager.cs" /> <Compile Include="IO\AIOBOX\AIOBOXManager.cs" />
<Compile Include="IO\AIOBOX\BLL.cs" />
<Compile Include="IO\AIOBOX\BLL2.cs" />
<Compile Include="IO\AIOBOX\Common.cs" />
<Compile Include="IO\IOManager.cs" /> <Compile Include="IO\IOManager.cs" />
<Compile Include="IO\KangNaiDe\KNDManager.cs" /> <Compile Include="IO\KangNaiDe\KNDManager.cs" />
<Compile Include="IO\KangNaiDe\MasterTcpClient.cs" /> <Compile Include="IO\KangNaiDe\MasterTcpClient.cs" />
......
...@@ -3,7 +3,7 @@ using System; ...@@ -3,7 +3,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using OnlineStore.Common; using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary; using OnlineStore.LoadCSVLibrary;
...@@ -16,20 +16,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -16,20 +16,20 @@ namespace OnlineStore.DeviceLibrary
{ {
//public static uint DefaultDICount = 16; //public static uint DefaultDICount = 16;
//public static uint DefaultDOCount = 16; //public static uint DefaultDOCount = 16;
public readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public Dictionary<string, AIOBOX2> AIOMap = new Dictionary<string, AIOBOX2>(); public Dictionary<string, AIOBOX> AIOMap = new Dictionary<string, AIOBOX>();
public Dictionary<string, List<Box_Sta>> DIValueMap = new Dictionary<string, List<Box_Sta>>(); public Dictionary<string, List<Box_Sta>> DIValueMap = new Dictionary<string, List<Box_Sta>>();
public Dictionary<string, List<Box_Sta>> DOValueMap = new Dictionary<string, List<Box_Sta>>(); public Dictionary<string, List<Box_Sta>> DOValueMap = new Dictionary<string, List<Box_Sta>>();
private object DIMapLock = ""; private object DIMapLock = "";
private object DOMapLock = ""; private object DOMapLock = "";
public System.Timers.Timer timer = null;
private object DILock = ""; private object DILock = "";
private object DOLock = ""; private object DOLock = "";
public void ConnectionIP(string ioIp ) public void ConnectionIP(string ioIp)
{ {
AIOBOX2 aioBox = null; AIOBOX aioBox = null;
if (AIOMap.ContainsKey(ioIp)) if (AIOMap.ContainsKey(ioIp))
{ {
aioBox = AIOMap[ioIp]; aioBox = AIOMap[ioIp];
...@@ -43,16 +43,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -43,16 +43,16 @@ namespace OnlineStore.DeviceLibrary
} }
if (DIValueMap.ContainsKey(ioIp)) if (DIValueMap.ContainsKey(ioIp))
{ {
DIValueMap.Remove(ioIp); DIValueMap.Remove(ioIp);
} }
if (DOValueMap.ContainsKey(ioIp)) if (DOValueMap.ContainsKey(ioIp))
{ {
DOValueMap.Remove(ioIp); DOValueMap.Remove(ioIp);
} }
try try
{ {
// Create new modbus master and add event functions // Create new modbus master and add event functions
aioBox = new AIOBOX2(); aioBox = new AIOBOX();
aioBox.IP = ioIp; aioBox.IP = ioIp;
int DIMS = ConfigAppSettings.GetIntValue("DIMS"); int DIMS = ConfigAppSettings.GetIntValue("DIMS");
if (DIMS < 20) if (DIMS < 20)
...@@ -64,32 +64,27 @@ namespace OnlineStore.DeviceLibrary ...@@ -64,32 +64,27 @@ namespace OnlineStore.DeviceLibrary
{ {
DOMS = 200; DOMS = 200;
} }
// bool rtn = aioBox.AutoIP(ioIp);
aioBox.AutoReadDI(true, DIMS); int DILength = StoreManager.Config.GetDILength(ioIp);
aioBox.AutoReadDO (true, DOMS); int DOLength = StoreManager.Config.GetDOLength(ioIp);
aioBox.SetInput(Asa.IOModule.Box_Type.DI, DILength);
aioBox.SetOutput(Asa.IOModule.Box_Type.DO, DOLength);
aioBox.AutoReadInput(true, DIMS);
aioBox.AutoReadOutput(true, DOMS);
aioBox.LogOut = true; aioBox.LogOut = true;
//aioBox.Reconnect_Event += AioBox_Reconnect_Event;
if (StoreManager.Config.GetDILength(ioIp).Equals(8))
{
aioBox.Type = Box_Type.DIO_16;
}
else
{
aioBox.Type = Box_Type.DIO_32;
}
aioBox.DI_Changed_Event += AioBox_DI_Changed_Event; ; aioBox.DI_Changed_Event += AioBox_DI_Changed_Event; ;
aioBox.DO_Changed_Event += AioBox_DO_Changed_Event; aioBox.DO_Changed_Event += AioBox_DO_Changed_Event;
aioBox.Log_Out_Event += AioBox_Log_Out_Event; // aioBox.Log_Out_Event += AioBox_Log_Out_Event;
//aioBox.Log_RxTx_Event += AioBox_Log_RxTx_Event; //aioBox.Log_RxTx_Event += AioBox_Log_RxTx_Event;
AIOMap.Add(ioIp, aioBox); AIOMap.Add(ioIp, aioBox);
LogUtil.info("开始连接IO模块[" + ioIp + "]["+DIMS+"]["+DOMS+"],尝试重连三次"); LogUtil.info("开始连接IO模块[" + ioIp + "][" + DIMS + "][" + DOMS + "],尝试重连三次");
for (int i = 1; i <= 3; i++) for (int i = 1; i <= 3; i++)
{ {
bool result = aioBox.Connect(); bool result = aioBox.Connect();
if (result) if (result)
{ {
LogUtil.info("第【"+i+"】次连接IO模块【" + ioIp + "】成功:" + aioBox.ErrInfo); LogUtil.info("第【" + i + "】次连接IO模块【" + ioIp + "】成功:" + aioBox.ErrInfo);
Thread.Sleep(10); Thread.Sleep(10);
//读取所有的DO //读取所有的DO
ReadAllDI(ioIp, 0); ReadAllDI(ioIp, 0);
...@@ -101,14 +96,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -101,14 +96,7 @@ namespace OnlineStore.DeviceLibrary
} }
Thread.Sleep(10); Thread.Sleep(10);
} }
if (timer == null)
{
timer = new System.Timers.Timer();
timer.Interval = 5000;
timer.AutoReset = true;
timer.Elapsed += timer_Elapsed;
timer.Enabled = true;
}
} }
catch (Exception error) catch (Exception error)
{ {
...@@ -116,7 +104,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -116,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private void AioBox_Reconnect_Event(AIOBOX2 box, int times, ref bool conn, Dictionary<string, string> dict) private void AioBox_Reconnect_Event(AIOBOX box, int times, ref bool conn, Dictionary<string, string> dict)
{ {
conn = true; conn = true;
string msg = "重连AIO块【" + box.IP + "】次数:" + times + "【" + box.ErrInfo + "】,连接信息如下\r\n"; string msg = "重连AIO块【" + box.IP + "】次数:" + times + "【" + box.ErrInfo + "】,连接信息如下\r\n";
...@@ -129,20 +117,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -129,20 +117,9 @@ namespace OnlineStore.DeviceLibrary
} }
private DateTime lastLogTime = DateTime.Now; private DateTime lastLogTime = DateTime.Now;
//private void AioBox_Log_RxTx_Event(AIOBOX2 box, string[] s)
//{
// TimeSpan span = DateTime.Now - lastLogTime;
// //if (span.TotalMinutes > 1)
// {
// lastLogTime = DateTime.Now;
// foreach (string str in s)
// {
// LogUtil.AIOLog.Debug("[" + box.IP + "]" + str);
// }
// }
//}
private void AioBox_Log_Out_Event(AIOBOX2 box, string[] s)
private void AioBox_Log_Out_Event(AIOBOX box, string[] s)
{ {
foreach (string str in s) foreach (string str in s)
{ {
...@@ -150,7 +127,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -150,7 +127,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private void AioBox_DI_Changed_Event(AIOBOX2 box, Box_Sta[] sta) private void AioBox_DI_Changed_Event(AIOBOX box, Box_Sta[] sta)
{ {
try try
{ {
...@@ -161,10 +138,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -161,10 +138,11 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error("AioBox_DI_Changed_Event出错:" + ex.ToString()); LogUtil.error("AioBox_DI_Changed_Event出错:" + ex.ToString());
} }
} }
private void AioBox_DO_Changed_Event(AIOBOX2 box, Box_Sta[] sta) private void AioBox_DO_Changed_Event(AIOBOX box, Box_Sta[] sta)
{ {
try try
{ {
UpdateAllDO(box.IP, sta); UpdateAllDO(box.IP, sta);
} }
catch (Exception ex) catch (Exception ex)
...@@ -208,17 +186,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -208,17 +186,24 @@ namespace OnlineStore.DeviceLibrary
DIValueMap.Add(ip, newList); DIValueMap.Add(ip, newList);
} }
} }
} }
} }
private void UpdateAllDO(string ip, Box_Sta[] sta) private void UpdateAllDO(string ip, Box_Sta[] sta)
{ {
if (sta != null && sta.Length >= StoreManager.Config.GetDOLength(ip)) if (sta != null && sta.Length >= StoreManager.Config.GetDOLength(ip))
{ {
bool needUpdate = false; bool needUpdate = false;
List<Box_Sta> newList = new List<Box_Sta>(); List<Box_Sta> newList = new List<Box_Sta>();
newList.AddRange(sta); newList.AddRange(sta);
List<Box_Sta> oldList = null; List<Box_Sta> oldList = null;
DOValueMap.TryGetValue(ip, out oldList); DOValueMap.TryGetValue(ip, out oldList);
//string result = "UpdateAllDO ip[" + ip + "], sta :";
//for (int i = 0; i < newList.Count; i++)
//{
// result += newList[i] + ",";
//}
//LogUtil.info(result);
if (oldList == null || oldList.Count.Equals(newList.Count).Equals(false)) if (oldList == null || oldList.Count.Equals(newList.Count).Equals(false))
{ {
needUpdate = true; needUpdate = true;
...@@ -246,85 +231,65 @@ namespace OnlineStore.DeviceLibrary ...@@ -246,85 +231,65 @@ namespace OnlineStore.DeviceLibrary
} }
} }
} }
//else
//{
// if (sta == null)
// {
// LogUtil.error("UpdateAllDO ip[" + ip + "], sta=null");
// }
// else
// {
// LogUtil.error(" UpdateAllDO ip[" + ip + "], sta.Length=" + sta.Length);
// }
//}
} }
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
//List<string> list = new List<string>(AIOMap.Keys);
//foreach (string io in list)
//{
// //判断是否连接,如果没有连接自动重连
// AIOBOX2 client = AIOMap[io];
// if (!client.IsConn)
// {
// //重连
// bool result = client.Connect();
// if (result)
// {
// LogUtil.info("重连O模块【" + client.IP + "】成功:" + client.ErrInfo);
// }
// else
// {
// LogUtil.error("重连O模块【" + client.IP + "】失败:" + client.ErrInfo);
// }
// }
//}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦:" + ex.ToString());
}
Thread.Sleep(1);
}
public override void ConnectionIOList(List<string> DIONameList) public override void ConnectionIOList(List<string> DIONameList)
{ {
foreach (string ip in DIONameList) foreach (string ip in DIONameList)
{ {
ConnectionIP(ip ); ConnectionIP(ip);
} }
} }
//关闭所有的DO //关闭所有的DO
public override void CloseAllDO() public override void CloseAllDO()
{ {
foreach (AIOBOX2 aio in AIOMap.Values) foreach (AIOBOX aio in AIOMap.Values)
{ {
ushort length = StoreManager.Config.GetDILength(aio.IP); ushort length = StoreManager.Config.GetDOLength(aio.IP);
for (ushort i = 0; i < length; i++) for (ushort i = 0; i < length; i++)
{ {
ushort u =(ushort)( i + length); // ushort u = (ushort)(i + length);
Box_Addr addr = GetAddr(u); // ushort u = (ushort)(i );
aio.WriteDO(addr, Box_Sta.Off); // Box_Addr addr = GetAddr(u);
} aio.WriteDO(i, Box_Sta.Off);
}
} }
} }
public override void CloseAllConnection() public override void CloseAllConnection()
{ {
foreach (AIOBOX2 aio in AIOMap.Values) foreach (AIOBOX aio in AIOMap.Values)
{ {
aio.Close(); aio.Close();
} }
AIOMap.Clear(); AIOMap.Clear();
timer.Stop();
timer = null;
} }
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff) public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff)
{ {
try try
{ {
AIOBOX2 aioBox = getAIO(ioIp); AIOBOX aioBox = getAIO(ioIp);
if (aioBox != null) if (aioBox != null)
{ {
Box_Addr add = GetAddr(StartAddress); // Box_Addr add = GetAddr(StartAddress);
for (int i = 1; i <= 3; i++) for (int i = 1; i <= 3; i++)
{ {
bool result = aioBox.WriteDO(GetAddr(StartAddress), GetBox_Sta(onOff)); bool result = aioBox.WriteDO(StartAddress, GetBox_Sta(onOff));
if (!result) if (!result)
{ {
LogUtil.error("AIO WriteSingleDO [" + StartAddress + "] 第" + i + "次失败:" + aioBox.ErrInfo); LogUtil.error("AIO WriteSingleDO [" + StartAddress + "] 第" + i + "次失败:" + aioBox.ErrInfo);
...@@ -337,25 +302,25 @@ namespace OnlineStore.DeviceLibrary ...@@ -337,25 +302,25 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "WriteSingleDO出错 没有连接IO模块:" + ioIp);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
LOGGER.Error("出错啦:" + ex.ToString()); LOGGER.Error("出错啦:" + ex.ToString());
} }
} }
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff, int mSeconds) public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff, int mSeconds)
{ {
try try
{ {
AIOBOX2 aioBox = getAIO(ioIp); AIOBOX aioBox = getAIO(ioIp);
Box_Sta currBox_Sta = GetBox_Sta(onOff); Box_Sta currBox_Sta = GetBox_Sta(onOff);
if (aioBox != null) if (aioBox != null)
{ {
Box_Addr add = GetAddr(StartAddress); // Box_Addr add = GetAddr(StartAddress);
aioBox.WriteDO(GetAddr(StartAddress), currBox_Sta); aioBox.WriteDO(StartAddress, currBox_Sta);
//写入之后,等待指定间隔后回写 //写入之后,等待指定间隔后回写
System.Timers.Timer mytimer = new System.Timers.Timer(mSeconds); System.Timers.Timer mytimer = new System.Timers.Timer(mSeconds);
...@@ -363,7 +328,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -363,7 +328,7 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
aioBox.WriteDO(GetAddr(StartAddress), aioBox.ReverseStatus(currBox_Sta)); aioBox.WriteDO(StartAddress, aioBox.ReverseStatus(currBox_Sta));
LogUtil.debug(LOGGER, "**********定时回写入 IO【" + ioIp + "," + StartAddress + ",值" + aioBox.ReverseStatus(currBox_Sta) + "】:"); LogUtil.debug(LOGGER, "**********定时回写入 IO【" + ioIp + "," + StartAddress + ",值" + aioBox.ReverseStatus(currBox_Sta) + "】:");
} }
catch (Exception ex) catch (Exception ex)
...@@ -376,22 +341,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -376,22 +341,22 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "WriteSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "WriteSingleDO出错 没有连接IO模块:" + ioIp);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error("WriteSingleDO出错:" + ioIp); LogUtil.error("WriteSingleDO 出错:" + ioIp);
} }
} }
public override void ReadAllDI(string ioIp, byte slaveId) public override void ReadAllDI(string ioIp, byte slaveId)
{ {
try try
{ {
AIOBOX2 aioBox = getAIO(ioIp); AIOBOX aioBox = getAIO(ioIp);
if (aioBox != null) if (aioBox != null)
{ {
Box_Sta[] allDi = aioBox.ReadDI(Box_Addr.DI_1, StoreManager.Config.GetDILength(ioIp)); Box_Sta[] allDi = aioBox.ReadDI(0, StoreManager.Config.GetDILength(ioIp));
UpdateAllDI(ioIp, allDi); UpdateAllDI(ioIp, allDi);
} }
} }
...@@ -404,11 +369,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -404,11 +369,12 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
AIOBOX2 aioBox = getAIO(ioIp); AIOBOX aioBox = getAIO(ioIp);
if (aioBox != null) if (aioBox != null)
{ {
Box_Sta[] allDO = aioBox.ReadDO(Box_Addr.DO_1, StoreManager.Config.GetDOLength(ioIp)); // int startIndex = StoreManager.Config.GetDILength(ioIp);
UpdateAllDO(ioIp, allDO); Box_Sta[] allDO = aioBox.ReadDO(0, StoreManager.Config.GetDOLength(ioIp));
UpdateAllDO(ioIp, allDO);
} }
} }
catch (Exception ex) catch (Exception ex)
...@@ -421,18 +387,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -421,18 +387,19 @@ namespace OnlineStore.DeviceLibrary
IO_VALUE value = IO_VALUE.LOW; IO_VALUE value = IO_VALUE.LOW;
try try
{ {
AIOBOX2 aioBox = getAIO(ioIP); AIOBOX aioBox = getAIO(ioIP);
if (aioBox != null) if (aioBox != null)
{ {
Box_Sta sta = Box_Sta.Off; Box_Sta sta = Box_Sta.Off;
Box_Addr addr = GetAddr(StartAddress); // Box_Addr addr = GetAddr(StartAddress);
int index = (int)StartAddress - (int)StoreManager.Config.GetDILength(ioIP);
if (DOValueMap.ContainsKey(ioIP) && DOValueMap[ioIP].Count > index) // int index = (int)StartAddress - (int)StoreManager.Config.GetDILength(ioIP);
if (DOValueMap.ContainsKey(ioIP) && DOValueMap[ioIP].Count > StartAddress)
{ {
sta = DOValueMap[ioIP][index]; sta = DOValueMap[ioIP][StartAddress];
} }
else else
{ sta = aioBox.ReadDO(addr); } { sta = aioBox.ReadDO(StartAddress); }
if (sta.Equals(Box_Sta.On)) if (sta.Equals(Box_Sta.On))
{ {
value = IO_VALUE.HIGH; value = IO_VALUE.HIGH;
...@@ -441,7 +408,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -441,7 +408,7 @@ namespace OnlineStore.DeviceLibrary
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error("ReadDI 出错:" + ex.ToString()); LogUtil.error("GetDOValue 出错:" + ex.ToString());
} }
return value; return value;
} }
...@@ -451,19 +418,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -451,19 +418,19 @@ namespace OnlineStore.DeviceLibrary
IO_VALUE value = IO_VALUE.LOW; IO_VALUE value = IO_VALUE.LOW;
try try
{ {
AIOBOX2 aioBox = getAIO(ioIP); AIOBOX aioBox = getAIO(ioIP);
if (aioBox != null) if (aioBox != null)
{ {
Box_Sta sta = Box_Sta.Off; Box_Sta sta = Box_Sta.Off;
Box_Addr addr = GetAddr(StartAddress); // Box_Addr addr = GetAddr(StartAddress);
int index = StartAddress; int index = StartAddress;
if (DIValueMap.ContainsKey(ioIP) && DIValueMap[ioIP].Count> index) if (DIValueMap.ContainsKey(ioIP) && DIValueMap[ioIP].Count > index)
{ {
sta = DIValueMap[ioIP][index]; sta = DIValueMap[ioIP][index];
} }
else else
{ {
sta= aioBox.ReadDI(addr ); sta = aioBox.ReadDI(StartAddress);
} }
if (sta.Equals(Box_Sta.On)) if (sta.Equals(Box_Sta.On))
{ {
...@@ -473,7 +440,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -473,7 +440,7 @@ namespace OnlineStore.DeviceLibrary
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error("ReadDI 出错:" + ex.ToString()); LogUtil.error("GetDIValue 出错:" + ex.ToString());
} }
return value; return value;
} }
...@@ -493,14 +460,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -493,14 +460,14 @@ namespace OnlineStore.DeviceLibrary
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error(LOGGER, "获取数据出错:" + ex.ToString()); LogUtil.error(LOGGER, " GetIOValue 获取数据出错:" + ex.ToString());
} }
return value; return value;
} }
private Box_Addr GetAddr(ushort StartAddress) private Box_Addr GetAddr(ushort StartAddress)
{ {
return (Box_Addr)(StartAddress ); return (Box_Addr)(StartAddress);
} }
private Box_Sta GetBox_Sta(IO_VALUE onOff) private Box_Sta GetBox_Sta(IO_VALUE onOff)
{ {
...@@ -514,9 +481,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -514,9 +481,9 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private AIOBOX2 getAIO(string ioIp) private AIOBOX getAIO(string ioIp)
{ {
AIOBOX2 aioBox = null; AIOBOX aioBox = null;
if (AIOMap.ContainsKey(ioIp)) if (AIOMap.ContainsKey(ioIp))
{ {
aioBox = AIOMap[ioIp]; aioBox = AIOMap[ioIp];
......
...@@ -11,8 +11,7 @@ using System.Threading; ...@@ -11,8 +11,7 @@ using System.Threading;
namespace OnlineStore.DeviceLibrary namespace OnlineStore.DeviceLibrary
{ {
//}
/// <summary> /// <summary>
/// 康奈德IO控制模块 /// 康奈德IO控制模块
/// </summary> /// </summary>
...@@ -160,11 +159,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -160,11 +159,7 @@ namespace OnlineStore.DeviceLibrary
public override void ConnectionIOList(List<string> DIONameList) public override void ConnectionIOList(List<string> DIONameList)
{ {
foreach (string ip in DIONameList) foreach (string ip in DIONameList)
{ {
//if (ip.Equals("192.168.10.10"))
//{
// continue;
//}
ConnectionIP(ip); ConnectionIP(ip);
} }
} }
...@@ -180,7 +175,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -180,7 +175,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "ReadMultipleDI出错 没有连接IO模块:" + ioIp);
} }
} }
public static void ReadMultipleDO(string ioIp, byte slaveId, ushort StartAddress, ushort length) public static void ReadMultipleDO(string ioIp, byte slaveId, ushort StartAddress, ushort length)
...@@ -194,7 +189,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -194,7 +189,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "ReadMultipleDO出错 没有连接IO模块:" + ioIp);
} }
} }
//关闭所有的DO //关闭所有的DO
...@@ -240,7 +235,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -240,7 +235,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "WriteMultipleDO 出错 没有连接IO模块:" + ioIp);
} }
} }
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff) public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff)
...@@ -257,7 +252,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -257,7 +252,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "WriteSingleDO 出错没有连接IO模块:" + ioIp);
} }
} }
...@@ -299,7 +294,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -299,7 +294,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp); LogUtil.error(LOGGER, "WriteSingleDO出错 没有连接IO模块:" + ioIp);
} }
} }
......
...@@ -868,7 +868,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -868,7 +868,7 @@ namespace OnlineStore.DeviceLibrary
if (storeRunStatus.Equals(StoreRunStatus.Wait)) if (storeRunStatus.Equals(StoreRunStatus.Wait))
{ {
//取新的Io状态 //取新的Io状态
IO_VALUE autoSingle = IOManager.IOValue(IO_Type.AutoRun_Signal); IO_VALUE autoSingle = IOManager.IOValue(IO_Type.Reset_BTN);
if (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1)) if (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1))
{ {
if (autoSingle.Equals(IO_VALUE.HIGH) && lastAutoRun.Equals(IO_VALUE.LOW)) if (autoSingle.Equals(IO_VALUE.HIGH) && lastAutoRun.Equals(IO_VALUE.LOW))
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!