Commit 57e1ada7 刘韬

兼容泥人IO

1 个父辈 c9d259dc
正在显示 77 个修改的文件 包含 720 行增加61 行删除
此文件类型无法预览
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>
......@@ -8,7 +8,7 @@
<OutputType>WinExe</OutputType>
<RootNamespace>CodeSplice</RootNamespace>
<AssemblyName>CodeSplice</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
......
......@@ -19,7 +19,7 @@ namespace CodeSplice.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
......@@ -47,8 +47,8 @@ namespace CodeSplice.Properties {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
......
......@@ -12,7 +12,7 @@ namespace CodeSplice.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
......
......@@ -288,6 +288,12 @@ namespace CodeSplice
/// </summary>
private void InitLightPort()
{
if (Common.Config.IOType == BLL.IOType.NIREN)
{
Common.IO.WriteDO(Common.Config.IOLight, BLL.Status.On);
BtnLight.Visible = false;
return;
}
try
{
string s;
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
......@@ -9,9 +9,10 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MES</RootNamespace>
<AssemblyName>MES</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Interface</RootNamespace>
<AssemblyName>MES_Interface</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
8c85762f11b49ef08ee603e3bef382fb9a1cbd1b
04482e0df1cb9e6ee974458e685da7aa0f4bc1ea
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MES</RootNamespace>
<AssemblyName>MES</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
......@@ -8,7 +8,7 @@
<OutputType>Library</OutputType>
<RootNamespace>MES</RootNamespace>
<AssemblyName>MES</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
f74ee2ebfe3dde84ecbe7946d84a4a33430f13e9
daab1ec8116181890b342cc3539844dc7cafb2b5
......@@ -4,7 +4,7 @@
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<log4net>
<appender name="SmartCode" type="log4net.Appender.RollingFileAppender">
......@@ -29,8 +29,8 @@
</appender>-->
<logger name="SmartCode">
<level value="Debug" />
<appender-ref ref="SmartCode" />
<level value="Debug"/>
<appender-ref ref="SmartCode"/>
</logger>
<!--<logger name="ShelfRFID">
<level value="Info" />
......
......@@ -232,6 +232,9 @@ namespace BLL
/// IO的IP地址
/// </summary>
public string IOAddress { get; private set; }
public IOType IOType { get; private set; }
public int IOLight { get; private set; }
public int IOTouch { get; private set; }
public string MES { get; private set; }
/// <summary>
......@@ -354,6 +357,20 @@ namespace BLL
Language = _node.InnerText;
_node = _root.SelectSingleNode("IOIP");
IOAddress = _node.InnerText;
_node = _root.SelectSingleNode("IOTYPE");
if (_node.InnerText.ToLower() == "niren")
{
IOType = IOType.NIREN;
int.TryParse(_root.SelectSingleNode("IOTouch").InnerText, out int it);
IOTouch= it;
int.TryParse(_root.SelectSingleNode("IOLight").InnerText, out it);
IOLight = it;
}
else
IOType = IOType.KND;
_node = _root.SelectSingleNode("MES");
MES = _node.InnerText;
......@@ -370,5 +387,9 @@ namespace BLL
}
public enum IOType
{
KND,
NIREN
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
public class IOManage : IO_Interface
{
IO_Interface iom;
public IOManage(string ip,IOType iOType) {
if (iOType== IOType.KND)
iom = new KND_IO(ip);
else
iom = new NiRenIO(ip);
iom.DI_Changed_Event += Iom_DI_Changed_Event;
}
private void Iom_DI_Changed_Event(Status[] sta)
{
DI_Changed_Event?.Invoke(sta);
}
/// <summary>
/// 自动读取DI委托
/// </summary>
/// <param name="sta">状态</param>
public delegate void DI_Changed(Status[] sta);
public string IP { get=>iom.IP; set=>iom.IP=value; }
public bool IsConn { get => iom.IsConn;}
public int Port { get => iom.Port; set => iom.Port = value; }
public event DI_Changed DI_Changed_Event;
public void Close()
{
iom.Close();
}
public bool Connect()
{
return iom.Connect();
}
public bool ReadDI(Addr add, out Status sta)
{
return iom.ReadDI(add, out sta);
}
public bool ReadDO(Addr add, out Status sta)
{
return iom.ReadDO(add, out sta);
}
public bool WriteDO(int add, Status sta)
{
return iom.WriteDO(add, sta);
}
}
}
namespace BLL
{
public interface IO_Interface
{
//string ErrInfo { get; }
//string Gateway { get; set; }
string IP { get; set; }
bool IsConn { get; }
//string Mask { get; set; }
int Port { get; set; }
event IOManage.DI_Changed DI_Changed_Event;
void Close();
bool Connect();
//bool ReadDI(Addr add, int count, out Status[] sta);
bool ReadDI(Addr add, out Status sta);
bool ReadDO(Addr add, out Status sta);
//bool ReadDO(Addr add, uint count, out Status[] sta);
//Status ReverseStatus(Status sta);
//bool WriteDO(Addr add, Status sta);
//bool WriteDO(Addr add, Status[] sta);
bool WriteDO(int add, Status sta);
//bool WriteDO_Reverse(Addr add, ref Status sta);
}
}
\ No newline at end of file
此文件的差异被折叠, 点击展开。
using BLL;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
class NiRenIO: IO_Interface
{
const int IoCount = 8;
byte station = 1;
public string IP;
TcpClient tcpClient = new TcpClient();
Thread iomonitorThread;
ushort seq = 0;
/// <summary>
///
/// </summary>
/// <param name="changindex">变化的io列表</param>
/// <param name="sta">所有IO状态</param>
public delegate void IO_Changed(List<int> changindex, bool[] sta);
public event IO_Changed DI_Changed_Event_a;
public event IO_Changed DO_Changed_Event;
/// <summary>
/// 连接状态变化, 手动连接不触发
/// </summary>
public event EventHandler<bool> ConnectionState_Event;
public NiRenIO(string ip)
{
this.IP = ip;
//DOdata[0] = 0x00;
//DOdata[1] = 0x00;
iomonitorThread = new Thread(new ThreadStart(iomonitor));
}
public event IOManage.DI_Changed DI_Changed_Event;
~NiRenIO()
{
iomonitorrun = false;
Close();
}
bool systemrun = false;
/// <summary>
/// 打开IO
/// </summary>
/// <returns></returns>
public bool Open()
{
tcpClient.Dispose();
tcpClient = new TcpClient();
tcpClient.ReceiveTimeout = 50;
tcpClient.SendTimeout = 50;
lock (tcpClient)
{
try
{
var connectResult = tcpClient.ConnectAsync(IP, 12345);
if (connectResult.Wait(1000))
{
systemrun = true;
iomonitorrun = true;
iomonitorThread = new Thread(new ThreadStart(iomonitor));
iomonitorThread.Start();
ConnectionState_Event?.Invoke(this, true);
return true;
}
else
{
tcpClient.EndConnect(connectResult);
tcpClient.Close();
return false;
}
}
catch
{
return false;
}
}
}
/// <summary>
/// 关闭IO
/// </summary>
public void Close()
{
try
{
systemrun = false;
iomonitorrun = false;
if (tcpClient.Connected)
tcpClient.Close();
}
catch { }
}
/// <summary>
/// 连接状态
/// </summary>
public bool IsConn
{
get => iomonitorrun && systemrun;
}
string IO_Interface.IP { get; set; }
public int Port { get; set; }
bool iomonitorrun = false;
/// <summary>
/// 循环读全部IO
/// </summary>
void iomonitor()
{
iomonitorrun = true;
while (iomonitorrun && systemrun)
{
Thread.Sleep(3);
try
{
ReadDO();
}
catch (SocketException)
{
readerrtimes = 0;
if (tcpClient.Connected)
tcpClient.Close();
ConnectionState_Event?.Invoke(this, false);
iomonitorrun = false;
}
catch(Exception)
{
}
}
if (systemrun)
{
do
{
Thread.Sleep(1000);
} while (systemrun && !Open());
}
}
/// <summary>
/// 写io
/// </summary>
/// <param name="donum">地址</param>
/// <param name="state">On/Off</param>
/// <returns></returns>
public bool WriteDO(int donum, bool state)
{
const string CMD_WriteDI = "AT+STACH{0}={1}\r\n";
var CMDSEND = string.Format(CMD_WriteDI, donum + 1, state ? "1": "0");
Debug.WriteLine("CMDSEND:" + CMDSEND);
var sendbyte = Encoding.ASCII.GetBytes(CMDSEND);
lock (tcpClient)
{
try
{
tcpClient.Client.Send(sendbyte);
Thread.Sleep(2);
byte[] result = new byte[100];
var ulength = tcpClient.Client.Receive(result);
if (ulength > 0) {
var recive = Encoding.ASCII.GetString(result, 0, ulength);
Debug.WriteLine("recive:" + recive);
if (recive.StartsWith("OK"))
return true;
}
}
catch
{
return false;
}
}
return false;
}
/// <summary>
/// 所有DI状态
/// </summary>
public bool[] DIstate = new bool[IoCount];
/// <summary>
/// 所有DO状态
/// </summary>
public bool[] DOstate = new bool[IoCount];
bool[] lastDIstate = new bool[IoCount];
bool[] lastDOstate = new bool[IoCount];
int readerrtimes = 0;
/// <summary>
/// 读全部IO
/// </summary>
void ReadDO()
{
const string CMD_ReadDI = "AT+OCCH0=?\r\n";
const string CMD_ReadD0 = "AT+STACH0=?\r\n";
const string CMD_ReadALL = CMD_ReadDI + CMD_ReadD0;
var sendbyte = Encoding.ASCII.GetBytes(CMD_ReadALL);
Debug.WriteLine("CMD_ReadALL:"+ CMD_ReadALL);
var resultbuffer = new byte[2048];
int ulength = 0;
lock (tcpClient)
{
try
{
tcpClient.Client.Send(sendbyte);
Thread.Sleep(5);
ulength = tcpClient.Client.Receive(resultbuffer);
readerrtimes = 0;
}
catch (SocketException se)
{
readerrtimes++;
Thread.Sleep(100);
if (readerrtimes > 5)
{
Debug.WriteLine("Read IO Error");
throw se;
}
return;
}
}
if (ulength == 0) {
return;
}
var recive = Encoding.ASCII.GetString(resultbuffer, 0, ulength);
Debug.WriteLine("recive:"+ recive);
var datas = recive.Split(new char[] { '\r', '\n' });
/*
+STACH1:0,100000
+STACH2:0,100000
+OCCH1:0
+OCCH2:0
*/
foreach (var data in datas) {
if (!data.StartsWith("+"))
continue;
if (data.StartsWith("+STACH"))
{
var ds = data.Split(':');
var d = ds[0].Substring(6);
if (!int.TryParse(d, out int doindex))
continue;
doindex = doindex - 1;
var sta = ds[1].StartsWith("1") ? true : false;
DOstate[doindex] = sta;
}
else if (data.StartsWith("+OCCH"))
{
var ds = data.Split(':');
var d = ds[0].Substring(5);
if (!int.TryParse(d, out int doindex))
continue;
doindex = doindex - 1;
var sta = ds[1].StartsWith("1") ? true : false;
DIstate[doindex] = sta;
}
}
for (int i = 0; i < IoCount; i++)
{
List<int> dichgindex = new List<int>();
List<int> dochgindex = new List<int>();
if (lastDIstate[i] != DIstate[i])
{
dichgindex.Add(i);
lastDIstate[i] = DIstate[i];
}
if (lastDOstate[i] != DOstate[i])
{
dochgindex.Add(i);
lastDOstate[i] = DOstate[i];
}
if (dichgindex.Count > 0)
{
DI_Changed_Event_a?.BeginInvoke(dichgindex, DIstate, null, null);
var statuses =DIstate.Select(d => { return d ? Status.On : Status.Off; }).ToArray();
DI_Changed_Event?.BeginInvoke(statuses, null, null);
}
if (dochgindex.Count > 0)
DO_Changed_Event?.BeginInvoke(dochgindex, DOstate, null, null);
}
}
void seqadd()
{
seq++;
if (seq >= ushort.MaxValue - 10)
seq = 0;
}
public bool Connect()
{
return Open();
}
public bool ReadDI(Addr add, out Status sta)
{
sta = Status.Off;
try
{
int index = ((int)add) - 10200;
var onoff = DIstate[index];
sta = onoff? Status.On : Status.Off;
return true;
}
catch
{
return false;
}
}
public bool ReadDO(Addr add, out Status sta)
{
sta = DOstate[(int)add - 100]? Status.On : Status.Off;
return true;
}
public bool WriteDO(int add, Status sta)
{
for (int i = 0; i < 10; i++)
{
if (WriteDO(add, sta == Status.On))
{
return true;
}
Thread.Sleep(100);
}
return false;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using TcpKPIO;
namespace BLL
{
public class NirenIO1 : IO_Interface
{
static int diCount = 2;
public event IOManage.DI_Changed DI_Changed_Event;
public string IP { get; set; }
public bool IsConn
{
get
{
var i= 0;
while (i < 5)
{
var isonline = KPIOServer.DeviceIsOnline(IP);
if (isonline)
return true;
i++;
Thread.Sleep(1000);
}
return false;
}
}
public int Port { get; set; }
public NirenIO(string ip)
{
IP = ip;
Port = 6000;
bool rtn = KPIOServer.StartServer(Port);
KPIOServer.DeviceDIChangeEvent += KPIOServer_DeviceDIChangeEvent;
KPIOServer.DeviceOnlineEvent += KPIOServer_DeviceOnlineEvent;
IOLogUtil.info($"开启IO模块:{rtn}");
}
private void KPIOServer_DeviceOnlineEvent(string ip)
{
IP = ip;
IOLogUtil.info($"IO模块:{IP}上线");
}
private void KPIOServer_DeviceDIChangeEvent(string ip, int[] diStatus)
{
Status[] statuses = new Status[diStatus.Length];
for (int i = 0; i < diStatus.Length; i++)
{
statuses[i] = diStatus[i] == 0 ? Status.On : Status.Off;
}
DI_Changed_Event?.Invoke(statuses);
}
public void Close()
{
KPIOServer.StopServer();
}
public bool Connect()
{
//throw new NotImplementedException();
return true;
}
public bool ReadDI(Addr add, out Status sta)
{
sta = Status.Off;
try
{
int index = ((int)add) - 10200;
var onoff = KPIOServer.GetDI(IP, index);
sta = onoff == 0 ? Status.Off : Status.On;
return true;
}
catch
{
return false;
}
}
public bool ReadDO(Addr add, out Status sta)
{
sta = KPIOServer.GetDO(IP, (int)add - 100) == 0 ? Status.Off : Status.On;
return true;
}
public bool WriteDO(int add, Status sta)
{
return KPIOServer.WriteDO(IP, add, sta== Status.On ?1:0);
}
}
}
using System;
using BLL;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
......@@ -36,7 +37,7 @@ namespace SmartCode
/// <summary>
/// 康奈德寄存器
/// </summary>
public static Asa.IOModule.KND IO;
public static IOManage IO;
/// <summary>
/// 条形码
/// </summary>
......
......@@ -19,7 +19,7 @@ namespace SmartCode.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
......@@ -47,8 +47,8 @@ namespace SmartCode.Properties {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
......
......@@ -12,7 +12,7 @@ namespace SmartCode.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
......
......@@ -8,7 +8,7 @@
<OutputType>WinExe</OutputType>
<RootNamespace>SmartCode</RootNamespace>
<AssemblyName>SmartCode</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
......@@ -95,6 +95,10 @@
</ItemGroup>
<ItemGroup>
<Compile Include="BLL\BarCode.cs" />
<Compile Include="BLL\IO\IOManage.cs" />
<Compile Include="BLL\IO\IO_Interface.cs" />
<Compile Include="BLL\IO\KND.cs" />
<Compile Include="BLL\IO\NirenIO.cs" />
<Compile Include="BLL\LabelEdit.cs" />
<Compile Include="Common.cs" />
<Compile Include="BLL\Config.cs" />
......
......@@ -115,8 +115,11 @@ namespace SmartCode
{
if (BtnOC.ButtonIndex == 0)
{
Common.Config.LightPort = ChsPort.SelectedText;
Common.Config.LightOpen = Command;
if (Common.Config.IOType == BLL.IOType.KND)
{
Common.Config.LightPort = ChsPort.SelectedText;
Common.Config.LightOpen = Command;
}
}
Close();
......
......@@ -393,6 +393,13 @@ namespace SmartCode
/// </summary>
private void InitLightPort()
{
if (Common.Config.IOType == BLL.IOType.NIREN)
{
Common.IO.WriteDO(Common.Config.IOLight, BLL.Status.On);
BtnLight.Visible = false;
return;
}
try
{
string s;
......@@ -439,10 +446,11 @@ namespace SmartCode
try
{
string s1, s2;
Common.IO = new Asa.IOModule.KND();
Common.IO.IP = Common.Config.IOAddress;
Common.IO = new BLL.IOManage(Common.Config.IOAddress, Common.Config.IOType);
Common.IO.DI_Changed_Event += IO_DI_Changed_Event;
Common.IO.Connect();
Thread.Sleep(1000);
if (Common.IO.IsConn)
{
noIO = false;
......@@ -451,9 +459,9 @@ namespace SmartCode
else
{
noIO = true;
s1 = Common.IO.ErrInfo;
s1 = "";// Common.IO.ErrInfo;
s2 = Common.Lang.Dialog("NoIO") + Common.Config.IOAddress;
Common.log.Info(s1);
Common.log.Info(s2);
RtxLog.AppendText(s2 + "\r\n");
}
}
......@@ -688,7 +696,7 @@ namespace SmartCode
return Common.Database.GetSN(key, doIncrease);
}
private void IO_DI_Changed_Event(Asa.IOModule.Status[] sta)
private void IO_DI_Changed_Event(BLL.Status[] sta)
{
//Common.log.Info("sta.Length=" + sta.Length + " sta[0]=" + sta[0].ToString());
......@@ -706,7 +714,7 @@ namespace SmartCode
}
if (sta[0] == Asa.IOModule.Status.On)
if (sta[Common.Config.IOTouch] == BLL.Status.On)
{
if (isTouch) return;
......@@ -783,9 +791,9 @@ namespace SmartCode
// InitSuperDog();
InitCamera();
InitLightPort();
InitReg();
InitLightPort();
if (Common.Database == null)
noDB = true;
else
......@@ -803,7 +811,7 @@ namespace SmartCode
canRun = true;
BtnWork.StateColor = Color.Green;
}
Common.IO.WriteDO(Asa.IOModule.Addr.DO_1, Asa.IOModule.Status.On);
Common.IO.WriteDO(1, BLL.Status.On);
}
catch (Exception ex)
{
......
[2022-07-11 13:56:23,040][1]INFO =====程序开始=====
[2022-07-11 13:56:23,047][1]INFO =====debug mode=====
[2022-07-11 13:56:23,355][1]INFO =====程序开始1=====
[2022-07-11 13:56:23,902][1]INFO 加载MES面板完成
[2022-07-11 13:56:24,037][1]INFO 相机数量为0
[2022-07-11 13:56:24,037][1]INFO 没有连接相机
[2022-07-11 13:56:24,040][1]INFO 没有串口:COM1
[2022-07-11 13:56:28,892][1]INFO Ping 192.168.0.102 请求没有回应
[2022-07-11 13:56:29,368][1]INFO =====程序结束=====
[2023-05-11 11:06:08,697][1]INFO =====程序开始=====
[2023-05-11 11:06:08,708][1]INFO =====debug mode=====
[2023-05-11 11:09:58,256][1]INFO =====程序开始=====
[2023-05-11 11:09:58,272][1]INFO =====debug mode=====
[2023-05-11 11:11:41,668][1]INFO =====程序开始1=====
[2023-05-11 11:11:43,396][1]INFO MES:10.3.72.247
[2023-05-11 11:11:43,795][1]INFO 加载MES面板完成
[2023-05-11 11:11:44,178][1]INFO 相机数量为0
[2023-05-11 11:11:44,179][1]INFO 没有连接相机
[2023-05-11 11:11:44,195][1]INFO 没有串口:COM5
[2023-05-11 11:11:49,215][1]INFO Ping 192.168.113.147 请求没有回应
[2023-05-11 11:12:20,571][1]INFO =====程序开始=====
[2023-05-11 11:12:20,587][1]INFO =====debug mode=====
[2023-05-11 11:12:23,605][1]INFO =====程序开始1=====
[2023-05-11 11:12:26,189][1]INFO MES:10.3.72.247
[2023-05-11 11:12:26,538][1]INFO 加载MES面板完成
[2023-05-11 11:12:27,120][1]INFO 相机数量为0
[2023-05-11 11:12:27,121][1]INFO 没有连接相机
[2023-05-11 11:12:27,134][1]INFO 没有串口:COM5
[2023-05-11 11:12:31,715][1]INFO Ping 192.168.113.147 请求没有回应
[2023-05-11 11:12:58,582][1]INFO =====程序结束=====
[2022-07-11 20:03:48,938][1]INFO =====程序开始=====
[2022-07-11 20:03:48,945][1]INFO =====debug mode=====
[2022-07-11 20:03:49,299][1]INFO =====程序开始1=====
[2022-07-11 20:03:49,910][1]INFO 加载MES面板完成
[2022-07-11 20:03:50,062][1]INFO 相机数量为0
[2022-07-11 20:03:50,062][1]INFO 没有连接相机
[2022-07-11 20:03:50,066][1]INFO 没有串口:COM1
[2022-07-11 20:03:54,881][1]INFO Ping 192.168.0.102 请求没有回应
[2023-05-11 13:36:47,383][1]INFO =====程序开始=====
[2023-05-11 13:36:47,398][1]INFO =====debug mode=====
[2023-05-11 13:36:48,220][1]INFO =====程序开始1=====
[2023-05-11 13:36:50,509][1]INFO MES:10.3.72.247
[2023-05-11 13:36:50,952][1]INFO 加载MES面板完成
[2023-05-11 13:36:51,552][1]INFO 相机数量为0
[2023-05-11 13:36:51,552][1]INFO 没有连接相机
[2023-05-11 13:37:30,122][1]INFO =====程序开始=====
[2023-05-11 13:37:30,138][1]INFO =====debug mode=====
[2023-05-11 13:37:30,733][1]INFO =====程序开始1=====
[2023-05-11 13:37:33,097][1]INFO MES:10.3.72.247
[2023-05-11 13:37:33,448][1]INFO 加载MES面板完成
[2023-05-11 13:37:33,860][1]INFO 相机数量为0
[2023-05-11 13:37:33,861][1]INFO 没有连接相机
[2023-05-11 13:37:35,016][1]INFO
[2023-05-11 13:37:43,881][1]INFO =====程序结束=====
[2023-05-11 13:44:24,946][1]INFO =====程序开始=====
[2023-05-11 13:44:24,965][1]INFO =====debug mode=====
[2023-05-11 13:44:25,717][1]INFO =====程序开始1=====
[2023-05-11 13:44:27,887][1]INFO MES:10.3.72.247
[2023-05-11 13:44:28,208][1]INFO 加载MES面板完成
[2023-05-11 13:44:28,826][1]INFO 相机数量为0
[2023-05-11 13:44:28,827][1]INFO 没有连接相机
[2022-07-11 13:56:23,040][1]INFO =====程序开始=====
[2022-07-11 13:56:23,047][1]INFO =====debug mode=====
[2022-07-11 13:56:23,355][1]INFO =====程序开始1=====
[2022-07-11 13:56:23,902][1]INFO 加载MES面板完成
[2022-07-11 13:56:24,037][1]INFO 相机数量为0
[2022-07-11 13:56:24,037][1]INFO 没有连接相机
[2022-07-11 13:56:24,040][1]INFO 没有串口:COM1
[2022-07-11 13:56:28,892][1]INFO Ping 192.168.0.102 请求没有回应
[2022-07-11 13:56:29,368][1]INFO =====程序结束=====
[2022-07-11 20:03:48,938][1]INFO =====程序开始=====
[2022-07-11 20:03:48,945][1]INFO =====debug mode=====
[2022-07-11 20:03:49,299][1]INFO =====程序开始1=====
[2022-07-11 20:03:49,910][1]INFO 加载MES面板完成
[2022-07-11 20:03:50,062][1]INFO 相机数量为0
[2022-07-11 20:03:50,062][1]INFO 没有连接相机
[2022-07-11 20:03:50,066][1]INFO 没有串口:COM1
[2022-07-11 20:03:54,881][1]INFO Ping 192.168.0.102 请求没有回应
<?xml version="1.0" encoding="utf-8"?>
<Config>
<Printer Name="Microsoft Print to PDF" Landscape="False" />
<Label Name="test1" />
<Light Name="COM1" Open="S100T100T001F001FC#" Close="S001F001F001F001FC#" />
<Camera Name="Basler" Single="True" SN="acA4600-7gc (22632613)" />
<Printer Name="ZDesigner ZD888-203dpi ZPL" Landscape="False" />
<Label Name="test3" />
<Light Name="COM5" Open="S200T196T001T001TC#" Close="S001F001F001F001FC#" />
<Camera Name="HIK" Single="True" SN="GigE:MV-CS200-10GC (J88597582)" />
<Scan Type="2" />
<Trace Type="0" />
<Limit Value="47" />
<Pwd Value="admin123" />
<Check Value="False" />
<Check Value="True" />
<Language>简体中文</Language>
<IOIP>192.168.0.102</IOIP>
<IOTYPE>NiRen</IOTYPE>
<IOTouch>0</IOTouch>
<IOLight>0</IOLight>
<IOIP>192.168.113.147</IOIP>
<MES>10.3.72.247</MES>
</Config>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<log4net>
<appender name="SmartCode" type="log4net.Appender.RollingFileAppender">
......@@ -29,8 +29,8 @@
</appender>-->
<logger name="SmartCode">
<level value="Debug" />
<appender-ref ref="SmartCode" />
<level value="Debug"/>
<appender-ref ref="SmartCode"/>
</logger>
<!--<logger name="ShelfRFID">
<level value="Info" />
......
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
58f64f4d79f076a918a9edf1b49ab8b2033d1ec4
8bde7aaec4959c4d34e1b9ff2ee9a84539deee90
......@@ -256,3 +256,4 @@ D:\rick\vs\SmartCode\SmartCode\obj\Debug\SmartCode.csproj.CopyComplete
D:\rick\vs\SmartCode\SmartCode\bin\Debug\log4net.dll
D:\rick\vs\SmartCode\SmartCode\bin\Debug\RestSharp.dll
D:\rick\vs\SmartCode\SmartCode\bin\Debug\RestSharp.xml
D:\rick\vs\SmartCode\SmartCode\obj\Debug\SmartCode.csproj.SuggestedBindingRedirects.cache
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!