Commit 457b6bbb 刘韬

1

1 个父辈 6a65fcff
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>MyCommon</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -85,6 +85,7 @@ namespace OnlineStore.Common
public static MyConfig<int> Runtime_PlateW;
public static MyConfig<int> Runtime_PlateH;
public static MyConfig<string> Runtime_PlateInFix;
public static MyConfig<bool> Runtime_IsNg;
public static MyConfig<string> Runtime_NgMsg;
}
}
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
......@@ -132,6 +132,9 @@
<Compile Include="userControl\FixtureSizeConfigControl.Designer.cs">
<DependentUpon>FixtureSizeConfigControl.cs</DependentUpon>
</Compile>
<Compile Include="userControl\ToucDownBtn.cs">
<SubType>Component</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="userControl\AxisMoveControl.resx">
......
......@@ -77,16 +77,34 @@ namespace DeviceLibrary
//serverConnectTimer.Enabled = false;
}
public void ProcessMsg(List<Msg> msg) {
WarnMsg = string.Join(",", msg.Select(x =>
public void ProcessMsg(List<Msg> msg)
{
if (msg == null)
return;
WarnMsg = string.Join("\r\n", msg.Select(x =>
{
if (x.msgLevel == MsgLevel.warning || x.msgLevel == MsgLevel.alarm)
{
return x.msgtxt;
return GetMsgPrefix(x.msgLevel) + x.msgtxt;
}
return null;
}
).Where(x=>!string.IsNullOrEmpty(x)));
).Where(x => !string.IsNullOrEmpty(x)));
}
string GetMsgPrefix(MsgLevel msgLevel)
{
switch (msgLevel)
{
case MsgLevel.info:
return "I=";
case MsgLevel.warning:
return "W=";
case MsgLevel.alarm:
return "A=";
}
return "";
}
public void SendInStoreRequest(string[] codelist, ReelParam reel, bool printlog = false)
{
......@@ -378,6 +396,10 @@ namespace DeviceLibrary
if (plateH > 56)
plateH = 56;
else if (plateH == 0) {
plateH = position.BagHigh;
plateW = position.BagWidth;
}
JobInfo inStoreJob = new JobInfo(message, posId, plateW, plateH);
if (InStoreEvent.Invoke(inStoreJob, false, ""))
{
......@@ -474,7 +496,16 @@ namespace DeviceLibrary
}
else
{
var ngReel = false;
var ngMsg = "";
if (data.ContainsKey("ngReel") && data["ngReel"].ToLower() == "true")
{
ngReel = true;
data.TryGetValue("ngMsg", out ngMsg);
}
JobInfo outStoreJob = new JobInfo(code, posId, plateW, plateH);
outStoreJob.isNG = ngReel;
outStoreJob.NgMsg = ngMsg;
OutStoreEvent.Invoke(outStoreJob);
}
}
......@@ -554,6 +585,47 @@ namespace DeviceLibrary
}
return msg;
}
public bool tryposQuery(string posId, string barcode) {
for (int i = 0; i < 3; i++) {
var r= posQuery(posId, barcode);
if (r.HasValue)
return r.Value;
}
return true;
}
bool? posQuery(string posId, string barcode)
{
try
{
Dictionary<string, string> paramMap = new Dictionary<string, string>
{
{ "posName", posId },
{ "barcode", barcode }
};
string server = GetAddr("/service/store/posQuery", paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "",1000);
LogUtil.info("posQuery:" + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
ResultData data = JsonHelper.DeserializeJsonToObject<ResultData>(resultStr);
if (data == null)
{
return null;
}
else if (data.code==0)
{
return true;
}else
return false;
}
catch (Exception ex)
{
LogUtil.error("DisabledPos: " + ex.ToString());
return null;
}
}
private static string GetAddr(string addr, Dictionary<string, string> paramsMap)
{
if (server.EndsWith("/"))
......
......@@ -102,10 +102,12 @@ namespace DeviceLibrary
/// 料盘高
/// </summary>
public int plateH { get; set; }
public bool isNG { get; set; }
public string NgMsg { get; set; }
public string ToStr()
{
return "TrayCode【" + TrayCode + "】,WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】";
return "TrayCode【" + TrayCode + "】,WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】,isng=【" + isNG + "】,nsmsg=【" + NgMsg + "】";
}
}
......
using CodeLibrary;
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
......@@ -31,10 +31,10 @@ namespace DeviceLibrary
var humiNeedStop = Current_Humidity < ServerCM.Max_Humidity - Setting_Init.Device_HumidityEndOffser;
if (Current_Humidity <= ServerCM.Max_Humidity)
LastHumiCheckTime = DateTime.Now;
//else if ((DateTime.Now - LastHumiCheckTime).TotalSeconds > 30)
//{
// Msg.add("温湿度超限", MsgLevel.alarm);
//}
else if ((DateTime.Now - LastHumiCheckTime).TotalSeconds > 30)
{
Msg.add(crc.GetString("Res0073.70dccffd","温湿度超限"), MsgLevel.alarm);
}
if (humiNeedStart && IOValue(IO_Type.StartOrStopBlow).Equals(IO_VALUE.LOW))
{
......
......@@ -83,8 +83,8 @@ namespace DeviceLibrary
MachineLedStateName[MachineLedStateE.SystemPause] = crc.GetString("Res0009","暂停");
MachineLedState.Add(MachineLedStateE.SystemPause, nls(LedState.blink, LedState.off, LedState.blink));
//温湿度超限 绿闪黄闪
//MachineLedStateName[MachineLedStateE.THoutRangeOver30m] = "温湿度超限";
//MachineLedState.Add(MachineLedStateE.THoutRangeOver30m, nls(LedState.none, LedState.blink, LedState.blink));
MachineLedStateName[MachineLedStateE.THoutRangeOver30m] = crc.GetString("Res0073.70dccffd","温湿度超限");
MachineLedState.Add(MachineLedStateE.THoutRangeOver30m, nls(LedState.none, LedState.blink, LedState.blink));
//进出库, 绿亮,黄闪
MachineLedStateName[MachineLedStateE.InOut] = crc.GetString("Res0010","出入库中");
MachineLedState.Add(MachineLedStateE.InOut, nls(LedState.none, LedState.blink, LedState.on));
......@@ -128,7 +128,6 @@ namespace DeviceLibrary
else if (runStatus == RunStatus.Running)
{
ProcessLefCfg(MachineLedStateE.Running);
//出入库 绿闪 黄闪
if ( StoreMoveInfo.MoveStep > MoveStep.Wait)
{
......@@ -145,7 +144,7 @@ namespace DeviceLibrary
}
if((DateTime.Now - LastHumiCheckTime).TotalSeconds > 30)
{
//ProcessLefCfg(MachineLedStateE.THoutRangeOver30m);
ProcessLefCfg(MachineLedStateE.THoutRangeOver30m);
}
}
else if (runStatus == RunStatus.Stop)
......@@ -231,7 +230,7 @@ namespace DeviceLibrary
HomeReset,
Running,
SystemPause,
//THoutRangeOver30m,
THoutRangeOver30m,
//THoutRange,
InOut,
}
......
......@@ -394,6 +394,8 @@ namespace DeviceLibrary
StoreMoveInfo.MoveParam.PlateH = Setting_Init.Runtime_PlateH;
StoreMoveInfo.MoveParam.PlateW = Setting_Init.Runtime_PlateW;
StoreMoveInfo.MoveParam.WareCode = Setting_Init.Runtime_WareCode;
StoreMoveInfo.MoveParam.IsNg = Setting_Init.Runtime_IsNg;
StoreMoveInfo.MoveParam.NgMsg = Setting_Init.Runtime_NgMsg;
if (Setting_Init.Runtime_IsInStore)
{
ResetMoveInfo.log("入库物料:" + StoreMoveInfo.MoveParam.ToStr());
......@@ -488,8 +490,9 @@ namespace DeviceLibrary
{
ok = false;
DeviceSuddenStop();
UserPause = true;
}
Msg.add(crc.GetString("Res0015","后侧防护门没有关闭") + (ok ? ignorestring : ""), MsgLevel.warning);
Msg.add(crc.GetString("Res0015","后侧防护门没有关闭") + (ok ? ignorestring : ""), MsgLevel.alarm);
}
if (!lastSafeCheckStatus && ok)
{
......
......@@ -6,7 +6,10 @@ using RemoteSheardObject;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
......@@ -122,12 +125,16 @@ namespace DeviceLibrary
StoreMoveInfo.MoveParam.PosID = jobInfo.PosId;
StoreMoveInfo.MoveParam.PlateH = jobInfo.plateH;
StoreMoveInfo.MoveParam.PlateW = jobInfo.plateW;
StoreMoveInfo.MoveParam.IsNg = jobInfo.isNG;
StoreMoveInfo.MoveParam.NgMsg = jobInfo.NgMsg;
Setting_Init.Runtime_IsInStore = false;
Setting_Init.Runtime_PosID = StoreMoveInfo.MoveParam.PosID;
Setting_Init.Runtime_PlateH = StoreMoveInfo.MoveParam.PlateH;
Setting_Init.Runtime_PlateW = StoreMoveInfo.MoveParam.PlateW;
Setting_Init.Runtime_WareCode = StoreMoveInfo.MoveParam.WareCode;
Setting_Init.Runtime_IsNg = StoreMoveInfo.MoveParam.IsNg;
Setting_Init.Runtime_NgMsg = StoreMoveInfo.MoveParam.NgMsg;
StoreMoveInfo.log($"开始出库任务:" + jobInfo.ToStr());
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
return;
......@@ -185,8 +192,11 @@ namespace DeviceLibrary
{
if (!ServerCM.SendStoreState(StoreMoveInfo.MoveParam.PosID, StoreStatus.InStoreEnd))
{
Msg.add(crc.GetString("Res0156", "服务器连接异常"), MsgLevel.warning);
StoreMoveInfo.CanWhileCount--;
///Msg.add(crc.GetString("Res0156", "服务器连接异常"), MsgLevel.warning);
if (StoreMoveInfo.CanWhileCount>0)
return;
StoreMoveInfo.log($"服务器连接异常");
}
StoreMoveInfo.log($"料盘已到达目的地");
StoreMoveInfo.NextMoveStep(MoveStep.StoreIn05);
......@@ -199,9 +209,20 @@ namespace DeviceLibrary
case MoveStep.StoreIn05:
if (boxTransport.IsComplateOrFree)
{
SRec.info(CID, "", crc.GetString("Res0020","完成入库"), StoreMoveInfo.MoveParam.PosID);
SRec.info(CID, "", crc.GetString("Res0020", "完成入库"), StoreMoveInfo.MoveParam.PosID);
StoreMoveInfo.log($"料盘已到达目的地");
if (!ServerCM.tryposQuery(StoreMoveInfo.MoveParam.PosID,""))
{
StoreMoveInfo.log($"无法确认入库成功NG处理");
JobInfo jobInfo = new JobInfo(StoreMoveInfo.MoveParam.WareCode, StoreMoveInfo.MoveParam.PosID, StoreMoveInfo.MoveParam.PlateW, StoreMoveInfo.MoveParam.PlateH);
jobInfo.isNG=true;
jobInfo.NgMsg= "Inbound confirmation failed.";
OutStoreJobList.Enqueue(jobInfo);
}
StoreMoveInfo.EndMove();
OutStoreJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID);
}
......
using OnlineStore.Common;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
......@@ -236,40 +237,36 @@ namespace DeviceLibrary
{
if (IsHomeMove)
{
return "轴【" + AxisInfo.DisplayStr + "】原点返回";
return crc.GetString("Res0074.60c85b4b","轴") + "【" + AxisInfo.DisplayStr + "】" + crc.GetString("AxisMoveControl_groupAxis_panel1_btnAxisReturnHome_Text","原点返回");
}
else
{
return "轴【" + AxisInfo.DisplayStr + "】绝对运动,目标位置【" + TargetPosition + "】";
return crc.GetString("Res0074.60c85b4b","轴") + "【" + AxisInfo.DisplayStr + "】" + crc.GetString("Res0075.0c33436f","绝对运动,目标位置") + "【" + TargetPosition + "】";
}
}
else if (WaitType.Equals(WaitEnum.W002_IOValue))
{
return "等待【" + IoType + "】=【" + IoValue + "】";
return crc.GetString("Res0076.87979227","等待") + "【" + IoType + "】=【" + IoValue + "】";
}
else if (WaitType.Equals(WaitEnum.W003_Time))
{
return "时间等待:【" + TimeMSeconds + "】毫秒";
}
else if (WaitType.Equals(WaitEnum.W005_ShuoKe))
{
return "硕科电机目标位置:【" + TargetPosition + "】 ";
return crc.GetString("Res0077.d7647f48","时间等待") + ":【" + TimeMSeconds + "】" + crc.GetString("Res0078.21157cbf","毫秒");
}
else if (WaitType.Equals(WaitEnum.W006_AxisOrg))
{
return "轴【" + AxisInfo.DisplayStr + "】ORG信号:【" + IoValue + "】 ";
return crc.GetString("Res0074.60c85b4b","轴") + "【" + AxisInfo.DisplayStr + "】" + crc.GetString("Res0079.3802ba42","ORG信号") + ":【" + IoValue + "】";
}
else if (WaitType.Equals(WaitEnum.W007_ReelHeight))
{
return "料盘高度【" + TargetPosition + "】 ";
return crc.GetString("Res0080.f4a8d691","料盘高度") + "【" + TargetPosition + "】";
}
else if (WaitType.Equals(WaitEnum.W008_BatchAxis))
{
return "批量轴上升到上料点";
return crc.GetString("Res0081.84e7c741","批量轴上升到上料点");
}
else if (WaitType.Equals(WaitEnum.W009_ScanCode))
{
return "扫码完成";
return crc.GetString("Res0082.ed4de1c6","扫码完成");
}
else if (WaitType.Equals(WaitEnum.W013_Action))
{
......@@ -277,7 +274,7 @@ namespace DeviceLibrary
}
else
{
return "Wait位置类型:WaitType=【" + WaitType + "】";
return "WaitType=【" + WaitType + "】";
}
}
/// <summary>
......
......@@ -76,10 +76,10 @@
this.btnAxisStop = new System.Windows.Forms.Button();
this.btnAxisReturnHome = new System.Windows.Forms.Button();
this.cmbAxis = new System.Windows.Forms.ComboBox();
this.btnDelMove = new System.Windows.Forms.Button();
this.btnDelMove = new ToucDownBtn();
this.btnOpenAxis = new System.Windows.Forms.Button();
this.btnCloseAxis = new System.Windows.Forms.Button();
this.btnAddMove = new System.Windows.Forms.Button();
this.btnAddMove = new ToucDownBtn();
this.txtASpeed = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label47 = new System.Windows.Forms.Label();
......@@ -952,8 +952,8 @@
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtServoStatue;
private System.Windows.Forms.Button btnDelMove;
private System.Windows.Forms.Button btnAddMove;
private ToucDownBtn btnDelMove;
private ToucDownBtn btnAddMove;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.ComboBox comjSpeed;
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
class ToucDownBtn : System.Windows.Forms.Button
{
public const int WM_POINTERDOWN = 0x246;
public const int WM_POINTERUP = 0x247;
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_POINTERDOWN:
{
MouseEventArgs args = new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 0);
OnMouseDown(args);
//Console.WriteLine("WM_POINTERDOWN");
break;
}
case WM_POINTERUP:
{
MouseEventArgs args = new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 0);
OnMouseUp(args);
//Console.WriteLine("WM_POINTERUP");
break;
}
}
base.WndProc(ref m);
}
}
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -57,7 +57,7 @@
</root>-->
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
......
......@@ -19,7 +19,7 @@ namespace TheMachine.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 {
......
......@@ -12,7 +12,7 @@ namespace TheMachine.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.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>TheMachine</RootNamespace>
<AssemblyName>SBSH</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>false</Deterministic>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!