Commit af805274 几米阳光

增加新AIO模块的切换

1 个父辈 dad2eb04
此文件类型无法预览
此文件的差异被折叠, 点击展开。
......@@ -42,6 +42,7 @@
<add key="HasDisableDoorControl" value="1" />
<add key="ACBaudRate" value="9600" />
<add key="Default_Language" value="zh-CN" />
<add key ="UseAIOBOX" value ="1"/>
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.AutoInOutStore</RootNamespace>
<AssemblyName>AutoInOutStore</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -117,11 +117,11 @@ namespace OnlineStore.AutoInOutStore
int slaveId = FormUtil.GetIntValue(txtSlaveId);
if (time > 0)
{
KNDManager.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value, time);
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value, time);
}
else
{
KNDManager.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value);
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value);
}
}
......@@ -198,7 +198,7 @@ namespace OnlineStore.AutoInOutStore
foreach (string key in DIControlList.Keys)
{
IOTextControl control = DIControlList[key];
int iov = (int)KNDManager.GetIOValue(boxBean.Config.StoreDIList[key]);
int iov = (int)IOManager.instance.GetIOValue(boxBean.Config.StoreDIList[key]);
if (iov != control.IOValue)
{
control.IOValue = iov;
......@@ -207,7 +207,7 @@ namespace OnlineStore.AutoInOutStore
} foreach (string key in this.DOControlList.Keys)
{
IOTextControl control = DOControlList[key];
int iov = (int)KNDManager.GetIOValue(boxBean.Config.StoreDOList[key]);
int iov = (int)IOManager.instance.GetIOValue(boxBean.Config.StoreDOList[key]);
if (iov != control.IOValue)
{
control.IOValue = iov;
......@@ -236,25 +236,25 @@ namespace OnlineStore.AutoInOutStore
}
private void btnOpenDoor_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
}
private void btnCloseDoor_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
KND.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
}
private void btnLocationUp_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
KND.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.HIGH);
}
private void btnLocationDown_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.HIGH);
KND.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW);
}
private void FrmIOStatus_Shown(object sender, EventArgs e)
......@@ -264,12 +264,12 @@ namespace OnlineStore.AutoInOutStore
private void btnOpenAxisBreak_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Axis_Brake, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.HIGH);
}
private void btnCloseAxisBreak_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
}
private void button1_Click(object sender, EventArgs e)
......@@ -279,24 +279,24 @@ namespace OnlineStore.AutoInOutStore
private void btnOpenLed_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
}
private void btnCloseLed_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
private void btnSuckingDiscUp_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
}
private void btnSuckingDiscDown_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.LOW);
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.HIGH);
}
private void btnDOpen_Click(object sender, EventArgs e)
......@@ -317,42 +317,42 @@ namespace OnlineStore.AutoInOutStore
private void btnSXi_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.HIGH);
}
private void btnSXil_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
}
private void button3_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Run_Sign, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Run_Sign, IO_VALUE.HIGH);
}
private void button2_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Run_Sign, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Run_Sign, IO_VALUE.LOW);
}
private void button5_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.HIGH);
}
private void button4_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
}
private void btnDisDoorOpen_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.DisableDoorControl, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.DisableDoorControl, IO_VALUE.HIGH);
}
private void btnDisDoorClose_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.DisableDoorControl, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.DisableDoorControl, IO_VALUE.LOW);
}
}
}
......@@ -318,7 +318,7 @@ namespace OnlineStore.AutoInOutStore
}
//string deviceMsg = "叉子上有料盘,请打开仓门检查";
if (store.storeRunStatus.Equals(StoreRunStatus.Runing) && store.StoreMove.MoveType.Equals(StoreMoveType.None) && KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (store.storeRunStatus.Equals(StoreRunStatus.Runing) && store.StoreMove.MoveType.Equals(StoreMoveType.None) && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
lblWarnMsg.Text = lblWarnMsg.Text + HasWare;
}
......@@ -1098,7 +1098,7 @@ namespace OnlineStore.AutoInOutStore
private void 扫码测试ToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
string message = "";
string outMsg = "";
//List<string> codeList = HDevelopExport.CameraScan(out outMsg);
......@@ -1113,13 +1113,13 @@ namespace OnlineStore.AutoInOutStore
message = message + str + "##";
}
LogUtil.info("扫码测试收到二维码【" + outMsg + "】:" + message);
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
private void 打开舱门ToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
}
private void 料仓运转OFFToolStripMenuItem_Click(object sender, EventArgs e)
......@@ -1130,8 +1130,8 @@ namespace OnlineStore.AutoInOutStore
private void 关闭仓门ToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
KND.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
}
private void 回待机点ToolStripMenuItem_Click(object sender, EventArgs e)
......@@ -1318,9 +1318,9 @@ namespace OnlineStore.AutoInOutStore
stop_button_Click(null, null);
}
store.Exit();
KNDManager.CloseAllDO();
IOManager.instance.CloseAllDO();
StoreOpenStatus(false);
KNDManager.CloseAllConnection();
IOManager.instance.CloseAllConnection();
//KNDAIManager.CloseAllConnection();
//WCFControl.CloseWCF();
ResourceCulture.LogDefaultMap();
......@@ -1366,21 +1366,21 @@ namespace OnlineStore.AutoInOutStore
private void 摄像机调试ToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
CodeLibrary.FrmCodeDecode frm = new FrmCodeDecode();
frm.ShowDialog();
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
private void 学习二维码ToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
string nameStr = ConfigAppSettings.GetValue(Setting_Init.CameraName);
string codeStr = ConfigAppSettings.GetValue(Setting_Init.CodeType);
HDCodeLearnHelper.LoadConfig(nameStr, codeStr);
FrmCodeLearn learn = new FrmCodeLearn();
learn.ShowDialog();
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
private void btnReadHomeSingle_Click(object sender, EventArgs e)
......@@ -1498,7 +1498,7 @@ namespace OnlineStore.AutoInOutStore
private void 批量上下轴ONToolStripMenuItem_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.Run_Sign, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Run_Sign, IO_VALUE.HIGH);
Thread.Sleep(1000);
string portName = store.Config.Batch_Axis.DeviceName;
int slvAddr = store.Config.Batch_Axis.GetAxisValue();
......@@ -1520,7 +1520,7 @@ namespace OnlineStore.AutoInOutStore
ACServerManager.ColsePort(store.Config.Batch_Axis.DeviceName);
Thread.Sleep(100);
KND.IOMove(IO_Type.Run_Sign, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Run_Sign, IO_VALUE.LOW);
}
private void btnWaitTrgGo_Click(object sender, EventArgs e)
......@@ -1644,13 +1644,13 @@ namespace OnlineStore.AutoInOutStore
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
}
private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
private void btnSave_Click(object sender, EventArgs e)
......@@ -1664,12 +1664,12 @@ namespace OnlineStore.AutoInOutStore
private void toolStripMenuItem4_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.DisableDoorControl, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.DisableDoorControl, IO_VALUE.HIGH);
}
private void toolStripMenuItem5_Click(object sender, EventArgs e)
{
KND.IOMove(IO_Type.DisableDoorControl, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.DisableDoorControl, IO_VALUE.LOW);
}
private void 出入库调试ToolStripMenuItem_Click(object sender, EventArgs e)
......
......@@ -47,7 +47,7 @@ namespace OnlineStore.AutoInOutStore.Properties {
}
/// <summary>
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
......
......@@ -12,7 +12,7 @@ namespace OnlineStore.AutoInOutStore.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.6.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
......
......@@ -87,5 +87,7 @@ namespace OnlineStore.Common
/// </summary>
public static string ACBaudRate = "ACBaudRate";
public static string Default_Language = "Default_Language";
public static string UseAIOBOX = "UseAIOBOX";
}
}
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......@@ -36,6 +36,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="AIOBOX">
<HintPath>..\..\dll\AIOBOX.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\dll\CodeLibrary.dll</HintPath>
</Reference>
......@@ -62,8 +65,10 @@
<Compile Include="acSingleStore\StoreManager.cs" />
<Compile Include="acSingleStore\AutomaticBaiting.cs" />
<Compile Include="halcon\CodeManager.cs" />
<Compile Include="KangNaiDe\KNDManager.cs" />
<Compile Include="KangNaiDe\MasterTcpClient.cs" />
<Compile Include="IO\AIOBOX\AIOBOXManager.cs" />
<Compile Include="IO\IOManager.cs" />
<Compile Include="IO\KangNaiDe\KNDManager.cs" />
<Compile Include="IO\KangNaiDe\MasterTcpClient.cs" />
<Compile Include="PanasonicServo\ACCMDManager.cs" />
<Compile Include="PanasonicServo\ACServerManager.cs" />
<Compile Include="PanasonicServo\ACServerManager_Partial.cs" />
......
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace OnlineStore.DeviceLibrary
{
public abstract class IOManager
{
public static IOManager instance = null;
public abstract void ConnectionIOList(List<string> dIODeviceNameList);
#region KNDIO
public static void IOMove(string ioType, IO_VALUE ioValue)
{
if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
instance.WriteSingleDO(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr(), ioValue);
Thread.Sleep(60);
}
else
{
LogUtil.error("没有DO=" + ioType);
}
}
public static IO_VALUE IOValue(string ioType)
{
IO_VALUE ioValue = IO_VALUE.LOW;
if (StoreManager.Config.StoreDIList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDIList[ioType];
ioValue = instance.GetDIValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
//UpdateDoValue(ioType, ioValue);
}
else if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
ioValue = instance.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
}
else
{
LogUtil.error("没有DO=" + ioType);
}
return ioValue;
}
#endregion
public static void Init()
{
bool isAIOBox = ConfigAppSettings.GetIntValue(Setting_Init.UseAIOBOX).Equals(1);
if (isAIOBox)
{
instance = new AIOBOXManager();
}
else
{
instance = new KNDManager();
}
}
public abstract void ReadAllDI(string deviceName, byte slaveId);
public abstract void ReadAllDO(string deviceName, byte slaveId);
public abstract void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value, int time);
public abstract void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value);
public abstract IO_VALUE GetDIValue(string deviceName, byte slaveID, ushort v);
public abstract IO_VALUE GetDOValue(string deviceName, byte slaveID, ushort v);
public abstract IO_VALUE GetIOValue(ConfigIO configIO);
public abstract void CloseAllDO();
public abstract void CloseAllConnection();
}
}
......@@ -13,52 +13,52 @@ using System.Threading;
namespace OnlineStore.DeviceLibrary
{
public class KND
{
//public class KND
//{
#region KNDIO
public static void IOMove(string ioType, IO_VALUE ioValue)
{
if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
KNDManager.WriteSingleDO(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr(), ioValue);
Thread.Sleep(60);
}
else
{
LogUtil.error( "没有DO=" + ioType);
}
}
// #region KNDIO
// public static void IOMove(string ioType, IO_VALUE ioValue)
// {
// if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
// {
// ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
// KNDManager.WriteSingleDO(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr(), ioValue);
// Thread.Sleep(60);
// }
// else
// {
// LogUtil.error( "没有DO=" + ioType);
// }
// }
// public static IO_VALUE IOValue(string ioType)
// {
// IO_VALUE ioValue = IO_VALUE.LOW;
// if (StoreManager.Config.StoreDIList.ContainsKey(ioType))
// {
// ConfigIO configIo = StoreManager.Config.StoreDIList[ioType];
// ioValue = KNDManager.GetDIValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
// //UpdateDoValue(ioType, ioValue);
// }
// else if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
// {
// ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
// ioValue = KNDManager.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
// }
// else
// {
// LogUtil.error( "没有DO=" + ioType);
// }
// return ioValue;
// }
// #endregion
public static IO_VALUE IOValue(string ioType)
{
IO_VALUE ioValue = IO_VALUE.LOW;
if (StoreManager.Config.StoreDIList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDIList[ioType];
ioValue = KNDManager.GetDIValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
//UpdateDoValue(ioType, ioValue);
}
else if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
ioValue = KNDManager.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
}
else
{
LogUtil.error( "没有DO=" + ioType);
}
return ioValue;
}
#endregion
}
//}
/// <summary>
/// 康奈德IO控制模块
/// </summary>
public class KNDManager
public class KNDManager : IOManager
{
public static ushort DIStartAddress = 200;
public static ushort DoStartAddress = 100;
......@@ -133,6 +133,14 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(LOGGER, "连接IO模块[" + ioIp + "]出错:" + error.ToString());
}
}
public override void ReadAllDI(string ioIp, byte slaveId)
{
ReadMultipleDI(ioIp, (byte)slaveId, (ushort)DIStartAddress, 16);
}
public override void ReadAllDO(string ioIp, byte slaveId)
{
ReadMultipleDO(ioIp, (byte)slaveId, (ushort)DoStartAddress, 16);
}
/// <summary>
/// 判断Io模块是否连接
/// </summary>
......@@ -191,7 +199,7 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(1);
}
public static void ConnectionKND(List<string> DIONameList)
public override void ConnectionIOList(List<string> DIONameList)
{
foreach (string ip in DIONameList)
{
......@@ -232,7 +240,7 @@ namespace OnlineStore.DeviceLibrary
}
}
//关闭所有的DO
public static void CloseAllDO()
public override void CloseAllDO()
{
foreach (string key in mastMap.Keys)
{
......@@ -241,7 +249,7 @@ namespace OnlineStore.DeviceLibrary
}
}
public static void CloseAllConnection()
public override void CloseAllConnection()
{
foreach (MasterTcpClient tcp in mastMap.Values)
......@@ -276,7 +284,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(LOGGER, "ReadSingleDO出错没有连接IO模块:" + ioIp);
}
}
public static void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff)
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff)
{
ushort ID = 5;
MasterTcpClient MBmaster = null;
......@@ -294,7 +302,7 @@ namespace OnlineStore.DeviceLibrary
}
}
public static 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)
{
ushort ID = 5;
MasterTcpClient MBmaster = null;
......@@ -368,7 +376,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(LOGGER, "SaveDOValue出错:" + ex.ToString());
}
}
public static IO_VALUE GetDOValue(string ioIP, byte slaveId, ushort StartAddress)
public override IO_VALUE GetDOValue(string ioIP, byte slaveId, ushort StartAddress)
{
IO_VALUE value = IO_VALUE.LOW;
......@@ -384,7 +392,7 @@ namespace OnlineStore.DeviceLibrary
return value;
}
public static IO_VALUE GetDIValue(string ioIP, byte slaveId, ushort StartAddress)
public override IO_VALUE GetDIValue(string ioIP, byte slaveId, ushort StartAddress)
{
IO_VALUE value = IO_VALUE.LOW;
if (DIValueMap.ContainsKey(ioIP))
......@@ -398,7 +406,7 @@ namespace OnlineStore.DeviceLibrary
}
return value;
}
public static IO_VALUE GetIOValue(ConfigIO configIO)
public override IO_VALUE GetIOValue(ConfigIO configIO)
{
IO_VALUE value = IO_VALUE.LOW;
try
......
......@@ -106,10 +106,11 @@ namespace OnlineStore.DeviceLibrary
public MasterTcpClient()
{
}
private string IP = "";
public int TimeOutTime = 0;
public MasterTcpClient(string ip, ushort port)
{
this.IP = ip;
TimeOutTime = 2000;
connect(ip, port);
}
......@@ -118,7 +119,6 @@ namespace OnlineStore.DeviceLibrary
{
try
{
OnResponseData = null;
// Connect asynchronous client
socketClient = new Socket(IPAddress.Parse(ip).AddressFamily, SocketType.Stream, ProtocolType.Tcp);
if (TimeOutTime <= 0)
......@@ -127,7 +127,6 @@ namespace OnlineStore.DeviceLibrary
socketClient.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _timeout);
socketClient.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _timeout);
socketClient.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, 1);
}
else
{
......@@ -154,10 +153,11 @@ namespace OnlineStore.DeviceLibrary
reviceTimer.Enabled = true;
_connected = true;
}
catch (Exception error)
catch (System.IO.IOException error)
{
LogUtil.info(LOGGER, "Connect to " + ip + ":" + port + " fail!");
_connected = false;
throw (error);
}
}
......@@ -171,7 +171,7 @@ namespace OnlineStore.DeviceLibrary
}
catch (Exception ex)
{
LOGGER.Error("出错:" + ex.ToString());
LOGGER.Error("IO模块[" + IP + "]出错:" + ex.ToString());
}
}
......@@ -295,6 +295,7 @@ namespace OnlineStore.DeviceLibrary
}
catch (SocketException e)
{
LogUtil.error(LOGGER, "IO模块[" + IP + "]接收数据出现错误:" + e.ToString());
if (socketClient != null)
{
socketClient.Close();
......@@ -328,8 +329,14 @@ namespace OnlineStore.DeviceLibrary
{
if (socketClient.Connected)
{
try { socketClient.Shutdown(SocketShutdown.Both); }
catch { }
try
{
socketClient.Shutdown(SocketShutdown.Both);
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "IO模块[" + IP + "]dispose出错:" + ex.ToString());
}
socketClient.Close();
}
socketClient = null;
......@@ -504,9 +511,7 @@ namespace OnlineStore.DeviceLibrary
// ------------------------------------------------------------------------
// Write asynchronous data
public void WriteAsyncData(byte[] write_data, ushort id)
{
try
private void WriteAsyncData(byte[] write_data, ushort id)
{
if (socketClient == null)
{
......@@ -532,16 +537,12 @@ namespace OnlineStore.DeviceLibrary
}
catch (SystemException error)
{
LogUtil.error(LOGGER, "IO模块 WriteAsyncData出错:" + error.ToString());
CallException(id, write_data[7], excExceptionConnectionLost, tcpSocketReviceBuffer);
}
}
else CallException(id, write_data[7], excExceptionConnectionLost, tcpSocketReviceBuffer);
}
catch (Exception ex)
{
LOGGER.Error("出错:" + ex.ToString());
}
}
// ------------------------------------------------------------------------
// Write asynchronous data acknowledge
......
......@@ -45,7 +45,7 @@ namespace OnlineStore.DeviceLibrary
if (IsInProcess) { return; }
IsInProcess = true;
bool result = false;
if (KND.IOValue(TargetIoType).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(TargetIoType).Equals(IO_VALUE.HIGH))
{
LogUtil.info("批量上料轴,检测到【" + TargetIoType + "】信号,可以停止运动");
result = true;
......
......@@ -63,7 +63,7 @@ namespace OnlineStore.DeviceLibrary
IsInProcess = true;
IO_VALUE value = KND.IOValue(IO_Type.CompressAxis_Check);
IO_VALUE value = IOManager.IOValue(IO_Type.CompressAxis_Check);
if (value.Equals(IO_VALUE.HIGH) && PreSignalValue.Equals(IO_VALUE.LOW))
{
SignalChangeCount++;
......
......@@ -150,7 +150,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (wait.WaitType == (int)Wait_Type.IOMove_2)
{
wait.IsEnd = KND.IOValue(wait.IoType).Equals(wait.IoValue);
wait.IsEnd = IOManager.IOValue(wait.IoType).Equals(wait.IoValue);
int timeOutMs = Config.IOSingle_TimerOut;
if (StoreMove.MoveStep == StoreMoveStep.SO_14_WaitTake)
{
......@@ -298,7 +298,7 @@ namespace OnlineStore.DeviceLibrary
//LogUtil.error(LOGGER, StoreName + logMsg + " 出错,找不到库位信息");
return false;
}
if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
UpdateInOutMsg(logMsg + "失败,叉子料盘检测有料");
//LogUtil.error(LOGGER, StoreName + logMsg + " 出错,叉子料盘检测有料");
......@@ -368,8 +368,8 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
//此处需要等待吸盘在上升位置
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Down, IO_VALUE.LOW));
}
......@@ -381,7 +381,7 @@ namespace OnlineStore.DeviceLibrary
{
InStoreLog("入库:SI_05 等待吸盘放下物品");
StoreMove.NextMoveStep(StoreMoveStep.SI_05_DoorWarToDevice);
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
StoreMove.WaitList.Add(WaitResultInfo.WaitTime(1000));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Air, IO_VALUE.LOW));
}
......@@ -464,7 +464,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_10_LocationCylinder_Down)
{
//KND.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
//IOManager.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
......@@ -522,7 +522,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.SI_22_InoutToDoor))
{
if (KND.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
{
InStoreLog("送出料盘:SI_22 ,需要操作人员拿走料盘,打开仓门 ");
StoreMove.NextMoveStep(StoreMoveStep.SI_23_OpenDoor);
......@@ -541,7 +541,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_24_WaitTrayGo)
{
if (KND.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
{
InStoreLog("送出料盘:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) ");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
......@@ -587,7 +587,7 @@ namespace OnlineStore.DeviceLibrary
//LogUtil.error(LOGGER, StoreName + logMsg + " 出错,找不到库位信息");
return false;
}
if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
UpdateInOutMsg(logMsg + "失败,叉子料盘检测有料");
//LogUtil.error(LOGGER, StoreName + logMsg + " 出错,叉子料盘检测有料");
......@@ -601,7 +601,7 @@ namespace OnlineStore.DeviceLibrary
return false;
}
//判断批量上下料机构是否已经满
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH)&& IsBatchWork)
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH)&& IsBatchWork)
{
int currBatchValue = ACServerManager.GetActualtPosition(Config.Batch_Axis.DeviceName, Config.Batch_Axis.GetAxisValue());
if (currBatchValue - param.MoveP.BatchAxis_DownValue < 1000)
......@@ -725,7 +725,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_06_BagDeviceBack)
{
if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PositionNum : "";
LogUtil.error("出库【" + posId + "】过程中叉子已从库位退出,未检测到叉子料盘信号 ");
......@@ -774,7 +774,7 @@ namespace OnlineStore.DeviceLibrary
AutomaticBaiting.BatchOutStoreHeight += StoreMove.MoveParam.PlateH;
AutomaticBaiting.BatchOutStoreCount++;
}
else if (KND.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
else if (IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
{
StoreMove.NextMoveStep(StoreMoveStep.SO_21_OpenDoor);
OutStoreLog("出库:SO_21打开仓门,压紧轴至P3(压紧前点),定位气缸下降");
......@@ -794,7 +794,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.SO_22_WaitTrayGo))
{
if (KND.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))
{
SO_13_InoutBack();
CloseDoorAndWait();
......@@ -826,7 +826,7 @@ namespace OnlineStore.DeviceLibrary
if (StoreMove.IsBatchInOutStore)
{
//如果批量能未检测到料盘,需要把批量轴走到能检测到料盘的位置
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
{
StoreMove.TimeOutSeconds = 120;
//ACAxisMove(Config.Batch_Axis, Config.BatchAxis_P1, Config.BatchAxis_P1_Speed);
......@@ -902,8 +902,8 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
}
//此处需要等待吸盘在上升位置
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Down, IO_VALUE.LOW));
}
......@@ -937,10 +937,10 @@ namespace OnlineStore.DeviceLibrary
return true;
}
if (KND.IOValue(IO_Type.LocationCylinder_Down).Equals(IO_VALUE.HIGH)
&& KND.IOValue(IO_Type.LocationCylinder_Up).Equals(IO_VALUE.LOW)
&& KND.IOValue(IO_Type.LocationCylinder2_Down).Equals(IO_VALUE.HIGH)
&& KND.IOValue(IO_Type.LocationCylinder2_Up).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.LocationCylinder_Down).Equals(IO_VALUE.HIGH)
&& IOManager.IOValue(IO_Type.LocationCylinder_Up).Equals(IO_VALUE.LOW)
&& IOManager.IOValue(IO_Type.LocationCylinder2_Down).Equals(IO_VALUE.HIGH)
&& IOManager.IOValue(IO_Type.LocationCylinder2_Up).Equals(IO_VALUE.LOW))
{
return true;
}
......@@ -954,8 +954,8 @@ namespace OnlineStore.DeviceLibrary
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder_Down, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder2_Up, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder2_Down, IO_VALUE.LOW));
KND.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
}
}
private void LocationDownAndWait()
......@@ -966,8 +966,8 @@ namespace OnlineStore.DeviceLibrary
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder_Up, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder2_Down, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LocationCylinder2_Up, IO_VALUE.LOW));
KND.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.HIGH);
KND.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW);
}
}
public List<FixtureCodeInfo> waitOutStoreList = new List<FixtureCodeInfo>();
......
......@@ -110,7 +110,7 @@ namespace OnlineStore.DeviceLibrary
public static void StopRun()
{
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
ClearInStoreInfo();
ClearOutStoreInfo();
}
......@@ -119,7 +119,7 @@ namespace OnlineStore.DeviceLibrary
BatchAxisController.StopCheck();
StoreMove.EndMove();
ClearInStoreInfo();
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
CylinderMove(IO_Type.SuckingDisc_Up, IO_Type.SuckingDisc_Down, false);
BatchDoorClose(false);
}
......@@ -180,7 +180,7 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NextMoveStep(StoreMoveStep.AUTO_R01_CloseDoor);
//关闭门,轴回原点,检测
BatchDoorClose(true);
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
CylinderMove(IO_Type.SuckingDisc_Up, IO_Type.SuckingDisc_Down, true);
LogUtil.info(Name + "复位中:关闭门锁");
break;
......@@ -213,7 +213,7 @@ namespace OnlineStore.DeviceLibrary
case StoreMoveStep.AUTO_R03_AutoAxisHome:
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
//if (ACServerManager.GetLimitPositiveSingle(StoreManager.Config.Batch_Axis).Equals(1))
{
LogUtil.info(Name + "复位中: 没有料盘,不需要上料,上料轴回0点");
......@@ -299,7 +299,7 @@ namespace OnlineStore.DeviceLibrary
if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I01_Wait))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveToUp);
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
{
LogUtil.info(Name + " 入料 ,已检测到料盘,轴不需要上升");
}
......@@ -325,7 +325,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I05_SuckingDisc_Work))
{
if (KND.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I06_SuckingDisc_Up);
......@@ -348,7 +348,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I06_SuckingDisc_Up))
{
if (KND.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I07_BatchAxisUp);
LogUtil.info(Name + "入料: 批量上下料轴上升速度【" + StoreManager.Config.BatchAxis_SlowSpeed + "】");
......@@ -387,7 +387,7 @@ namespace OnlineStore.DeviceLibrary
if (LastWidth.Equals(0))
{
//料盘检测2亮为13寸盘,其他都认为是7寸盘
if (KND.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH))
{
LastWidth = 13;
}
......@@ -478,7 +478,7 @@ namespace OnlineStore.DeviceLibrary
LastHeight = (int)Math.Ceiling(1F * (EndMovePosition - StartMovePosition) / AxisChangeValue);
int addHeight = 0;
//如果检测信号未亮,极限亮了,需要补充高
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
{
addHeight = StoreManager.Config.LastTrayAddHeight;
}
......@@ -541,11 +541,11 @@ namespace OnlineStore.DeviceLibrary
private static void SuckingDiscWork()
{
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I05_SuckingDisc_Work);
SuckingDisc_WorkCount++;
LogUtil.info(Name + "入料: 吸盘开始第" + SuckingDisc_WorkCount + "次工作");
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.HIGH);
StoreMove.WaitList.Add(WaitResultInfo.WaitTime(500));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Air, IO_VALUE.HIGH));
StoreMove.OneWaitCanEndStep = true;
......@@ -574,7 +574,7 @@ namespace OnlineStore.DeviceLibrary
ClearTimeOut();
}
// if (ACServerManager.GetLimitPositiveSingle(StoreManager.Config.Batch_Axis).Equals(0))
if (KND.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I03_ScanCode);
LogUtil.info(Name + "入料: 开始扫码,最多等待6000 ");
......@@ -640,7 +640,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_O01_WaitDoorOpen))
{
if (KND.IOValue(IO_Type.OutCheck).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.OutCheck).Equals(IO_VALUE.HIGH))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_O02_WaitOutSingleLow);
LogUtil.info(Name + " 出料 ,等待出料检测信号关闭");
......@@ -705,7 +705,7 @@ namespace OnlineStore.DeviceLibrary
public static bool DoorIsClose()
{
if (KND.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH))
{
return true;
}
......@@ -716,7 +716,7 @@ namespace OnlineStore.DeviceLibrary
{
if (DoorIsClose())
{
if (KND.IOValue(IO_Type.BatchDoor_Close).Equals(IO_VALUE.HIGH) && KND.IOValue(IO_Type.BatchDoor_Open).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.BatchDoor_Close).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.BatchDoor_Open).Equals(IO_VALUE.LOW))
{
return true;
}
......@@ -747,8 +747,8 @@ namespace OnlineStore.DeviceLibrary
ClearInStoreInfo();
ClearOutStoreInfo();
DoorStatus = 1;
KND.IOMove(IO_Type.BatchDoor_Close, IO_VALUE.LOW);
KND.IOMove(IO_Type.BatchDoor_Open, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.BatchDoor_Close, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.BatchDoor_Open, IO_VALUE.HIGH);
if (isWait)
{
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.BatchDoor_Close, IO_VALUE.LOW));
......@@ -766,8 +766,8 @@ namespace OnlineStore.DeviceLibrary
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.BatchDoor_Open, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.BatchDoor_Close, IO_VALUE.HIGH));
}
KND.IOMove(IO_Type.BatchDoor_Open, IO_VALUE.LOW);
KND.IOMove(IO_Type.BatchDoor_Close, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.BatchDoor_Open, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.BatchDoor_Close, IO_VALUE.HIGH);
}
}
......
......@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (wait.WaitType == (int)Wait_Type.IOMove_2)
{
wait.IsEnd = KND.IOValue(wait.IoType).Equals(wait.IoValue);
wait.IsEnd = IOManager.IOValue(wait.IoType).Equals(wait.IoValue);
//int timeOutMs = StoreManager.Config.IOSingle_TimerOut;
//timeOutMs = 20;
//if ((!wait.IsEnd) && span.TotalMilliseconds > timeOutMs)
......@@ -227,7 +227,7 @@ namespace OnlineStore.DeviceLibrary
public static bool BatchAxisIsEnd(WaitResultInfo wait)
{
bool result = false;
if (KND.IOValue(wait.IoType).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(wait.IoType).Equals(IO_VALUE.HIGH))
{
LogUtil.info(wait.ToStr() + " 检测到【" + wait.IoType + "】信号,可以停止运动");
result = true;
......@@ -255,7 +255,7 @@ namespace OnlineStore.DeviceLibrary
{
Task.Factory.StartNew(delegate ()
{
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
string message = "";
List<string> codeList = CodeManager.CameraScan();
if (codeList.Count <= 0)
......@@ -288,7 +288,7 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil.info("扫到二维码:" + LastCode);
}
KND.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
// StoreManager.Store.onCodeReceived(message);
});
}
......@@ -301,8 +301,8 @@ namespace OnlineStore.DeviceLibrary
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(lowType, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(highType, IO_VALUE.HIGH));
}
KND.IOMove(lowType, IO_VALUE.LOW);
KND.IOMove(highType, IO_VALUE.HIGH);
IOManager.IOMove(lowType, IO_VALUE.LOW);
IOManager.IOMove(highType, IO_VALUE.HIGH);
}
private static string ProcessMsg()
......@@ -520,7 +520,7 @@ namespace OnlineStore.DeviceLibrary
{
return ResourceControl.GetString(ResourceControl.batchInError, "Batch storing Error: Close feeding device");
}
if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
return ResourceControl.GetString(ResourceControl.batchInError2, "Batch storing Error: gripper full, check before restoring");
......
......@@ -262,51 +262,15 @@ namespace OnlineStore.LoadCSVLibrary
{
}
}
/// <summary>
/// 若是KNDIO,DI从200-215,DO从100-115
/// 若是AOIBOX,DI从0-15,DO从16-31
/// </summary>
/// <returns></returns>
public override int GetValue()
{
return GetValue();
}
//public int GetIOValue()
//{
// if (IoValue >= -1)
// {
// return IoValue;
// }
// try
// {
// if (ProVale.Equals("") || ProVale.Equals("-1"))
// {
// IoValue = -1;
// }
// else if (ProType.Equals(ConfigItemType.DI))
// {
// IoValue = Convert.ToInt32(ProVale, 8);
// }
// else if (ProType.Equals(ConfigItemType.DO))
// {
// if (ProVale.Length == 2)
// {
// int a = Convert.ToInt32(ProVale.Substring(0, 1), 16) - 8;
// string str =a+ProVale.Substring(1,1);
// IoValue = Convert.ToInt32( str, 8);
// //IoValue = a + b;
// }
// else
// {
// IoValue = Convert.ToInt32(ProVale, 16) - Convert.ToInt32("80", 16);
// }
// }
// //LOGGER.Info("IO转换:(" + ElectricalDefinition + ")" + ProVale + "=" + IoValue);
// }
// catch (Exception ex)
// {
// LOGGER.Error("出错了["+ ProVale + "]["+ToString()+"]:" +ex.Message);
// return -1;
// }
// return IoValue;
//}
public override string ToString()
{
return "ConfigIO。" + ProType + "," + Explain + "," + ProName + ",属性值:" + ProVale + ",设备名称:" + DeviceName + ",描述:" + Describe + ",电器定义:" + ElectricalDefinition + ",代码定义:" + CodeDefinition + "";
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!