Commit 2bb5d4ad LN

去掉测高功能,增加是否有仓门处理

1 个父辈 dc200d8b

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2024
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ACServoDriveTest", "source\ACServoDriveTest\ACServoDriveTest.csproj", "{7FA84E1E-BCDE-49F6-BE42-0BC397AF65B8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ACSingleStore", "source\ACSingleStore\ACSingleStore.csproj", "{0D2542F5-DD62-4352-82D0-383D9A045E74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "source\Common\Common.csproj", "{43CDD09E-FCF3-4960-A01D-3BBFE9933122}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceLibrary", "source\DeviceLibrary\DeviceLibrary.csproj", "{513BC1C9-800D-43A6-9499-3700BAEC3554}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserFromControl", "source\UserFromControl\UserFromControl.csproj", "{F018462A-D9BC-4365-97F2-F6D71751641E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "source\LoadCVSLibrary\LoadCSVLibrary.csproj", "{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7FA84E1E-BCDE-49F6-BE42-0BC397AF65B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7FA84E1E-BCDE-49F6-BE42-0BC397AF65B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7FA84E1E-BCDE-49F6-BE42-0BC397AF65B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7FA84E1E-BCDE-49F6-BE42-0BC397AF65B8}.Release|Any CPU.Build.0 = Release|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Release|Any CPU.Build.0 = Release|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Release|Any CPU.Build.0 = Release|Any CPU
{513BC1C9-800D-43A6-9499-3700BAEC3554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{513BC1C9-800D-43A6-9499-3700BAEC3554}.Debug|Any CPU.Build.0 = Debug|Any CPU
{513BC1C9-800D-43A6-9499-3700BAEC3554}.Release|Any CPU.ActiveCfg = Release|Any CPU
{513BC1C9-800D-43A6-9499-3700BAEC3554}.Release|Any CPU.Build.0 = Release|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Release|Any CPU.Build.0 = Release|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Debug|Any CPU.Build.0 = Debug|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.ActiveCfg = Release|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5459501E-8250-488F-B563-3C6777AEFCBA}
EndGlobalSection
EndGlobal
......@@ -38,12 +38,17 @@
<!--压紧轴对应1mm的脉冲-->
<add key="ComAxisChangeValue" value="2400"/>
<!--温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪-->
<add key="HumitureControllerType" value="1"/>
<add key="HumitureControllerType" value="0"/>
<add key="UseAIOBOX" value="1"/>
<!--流水线地址和端口配置-->
<add key ="LineServerIp" value ="192.168.200.69"/>
<add key ="LineServerPort" value ="1234"/>
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/ACStore-RC29-1.log"/>
<file value="logs/ACStore-RC1246-1.log"/>
<param name="Encoding" value="UTF-8" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
......
......@@ -98,7 +98,7 @@ namespace OnlineStore.ACSingleStore
private void FrmTest_FormClosing(object sender, FormClosingEventArgs e)
{
KNDAIManager.NeedShow = false;
//KNDAIManager.NeedShow = false;
try
{
if (this.timer1.Enabled)
......@@ -159,7 +159,7 @@ namespace OnlineStore.ACSingleStore
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
KNDAIManager.NeedShow = true;
//KNDAIManager.NeedShow = true;
}
private void cmbWriteIO_DrawItem(object sender, DrawItemEventArgs e)
......@@ -259,13 +259,15 @@ namespace OnlineStore.ACSingleStore
}
private void btnOpenDoor_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
IOManager.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);
StoreManager.Store.OpenDoor(false);
}
private void btnCloseDoor_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.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);
StoreManager.Store.CloseDoor(false);
}
private void btnLocationUp_Click(object sender, EventArgs e)
......
......@@ -2072,7 +2072,7 @@
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(560, 670);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = " 压紧轴/温湿度 ";
this.tabPage2.Text = " 温湿度 ";
this.tabPage2.UseVisualStyleBackColor = true;
//
// groupBox7
......
......@@ -995,8 +995,10 @@ namespace OnlineStore.ACSingleStore
private void 打开舱门ToolStripMenuItem_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
IOManager.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);
StoreManager.Store.OpenDoor(false);
}
private void 料仓运转OFFToolStripMenuItem_Click(object sender, EventArgs e)
......@@ -1007,8 +1009,9 @@ namespace OnlineStore.ACSingleStore
private void 关闭仓门ToolStripMenuItem_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.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);
StoreManager.Store.CloseDoor(false);
}
private void 回待机点ToolStripMenuItem_Click(object sender, EventArgs e)
......@@ -1248,7 +1251,7 @@ namespace OnlineStore.ACSingleStore
IOManager.instance.CloseAllDO();
StoreOpenStatus(false);
IOManager.instance.CloseAllConnection();
KNDAIManager.CloseAllConnection();
// KNDAIManager.CloseAllConnection();
//WCFControl.CloseWCF();
System.Environment.Exit(System.Environment.ExitCode);
}
......@@ -1305,70 +1308,6 @@ namespace OnlineStore.ACSingleStore
int value = ACServerManager.GetHomeSingle(GetPortName(), GetSlaveAddr());
this.txtHomeSingle.Text = value.ToString();
}
//private void btnOpen_Click(object sender, EventArgs e)
//{
// if (StoreManager.OpenShuoKe(store))
// {
// store.SetShuokeSpeed();
// FormComStatus(true);
// }
//}
//private void btnClose_Click(object sender, EventArgs e)
//{
// ShuoKeControls.ClosePort();
// FormComStatus(false);
//}
//private void btnVolMove_Click(object sender, EventArgs e)
//{
// int speed = FormUtil.GetIntValue(txtSpeed);
// ShuoKeControls.VolMove(store.Config.CompressAxis_Slv, speed);
//}
//private void btnGetPosition_Click(object sender, EventArgs e)
//{
// int value = ShuoKeControls.GetABSPosition(store.Config.CompressAxis_Slv);
// txtComAPosition.Text = value.ToString();
// lblShuoKeMsg.Text = DateTime.Now.ToLongTimeString() + "实时位置:" + value;
//}
//private void btnStop_Click(object sender, EventArgs e)
//{
// ShuoKeControls.SuddownStop(this.store.Config.CompressAxis_Slv);
//}
//private void btnClearPosition_Click(object sender, EventArgs e)
//{
// ShuoKeControls.PositionClear(this.store.Config.CompressAxis_Slv, ShuoKeCMD.AbsPositionClear);
// ShuoKeControls.PositionClear(this.store.Config.CompressAxis_Slv, ShuoKeCMD.RelPositionClear);
//}
//private void btnHomeMove_Click(object sender, EventArgs e)
//{
// ShuoKeControls.HomeMove(this.store.Config.CompressAxis_Slv, byte.Parse(cmbHomeType.SelectedIndex.ToString()));
//}
//private void btnLineAbsMove_Click(object sender, EventArgs e)
//{
// int posi = FormUtil.GetIntValue(txtLinePosition);
// ShuoKeControls.AbsMove(this.store.Config.CompressAxis_Slv, posi);
//}
//private void btnRelMove_Click(object sender, EventArgs e)
//{
// int posi = FormUtil.GetIntValue(txtLinePosition);
// ShuoKeControls.RelativeMove(this.store.Config.CompressAxis_Slv, posi);
//}
//private void btnStatusSearch_Click(object sender, EventArgs e)
//{
// ShuoKeInfo info = ShuoKeControls.GetStatus(store.Config.CompressAxis_Slv);
// lblShuoKeMsg.Text = info.ToShowStr();
//}
//private void FormComStatus(bool isOpen)
//{
// btnOpen.Enabled = !isOpen;
// btnClose.Enabled = isOpen;
// btnClearPosition.Enabled = isOpen;
// btnVolMove.Enabled = isOpen;
// btnGetPosition.Enabled = isOpen;
// btnHomeMove.Enabled = isOpen;
// btnLineAbsMove.Enabled = isOpen;
// btnStatusSearch.Enabled = isOpen;
// // Bt_ClearCounter.Enabled = isOpen;
//}
private void btnTempInit_Click(object sender, EventArgs e)
......@@ -1395,8 +1334,9 @@ namespace OnlineStore.ACSingleStore
private void btnOpenDoor_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
IOManager.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);
StoreManager.Store.OpenDoor(false);
}
private void btnClearL_Click(object sender, EventArgs e)
......@@ -1455,8 +1395,9 @@ namespace OnlineStore.ACSingleStore
private void btnCloseDoor_Click(object sender, EventArgs e)
{
IOManager.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);
//IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
StoreManager.Store.CloseDoor(false);
}
}
}
......@@ -81,11 +81,13 @@
压紧轴回原点增加自动重复运动功能。
新建料仓RC1246,作为阳光电源流水线单台料仓软件
新建料仓RC1246,作为阳光电源流水线单台料仓软件
需要修改内容:压紧轴改为伺服控制
不需要扫码,测高
前三台为7寸料盘,无舱门
第四台是13寸料盘,有舱门
修改IO
去掉测高,测高在流水线处处理
\ No newline at end of file
......@@ -86,5 +86,8 @@ namespace OnlineStore.Common
public static string HumitureControllerType = "HumitureControllerType";
public static string UseAIOBOX = "UseAIOBOX";
public static string LineServerIp = "LineServerIp";
public static string LineServerPort = "LineServerPort";
}
}
......@@ -12,6 +12,10 @@ namespace OnlineStore.Common
{
public class TcpClient
{
private static string ServerIp = "";
private static int ServerPort = 0;
private System.Timers.Timer ReConnectTimer = null;
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public delegate void HandleMessage(string message);
......@@ -79,10 +83,21 @@ namespace OnlineStore.Common
/// <summary>
/// 连接服务器
/// </summary>
public bool connect(string serverIP, int serverPort, HandleMessage HandleMessage)
public bool connect(string serverIP, int serverPort, HandleMessage HandleMessage,int ReConnectMs=0)
{
m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
onReceived = HandleMessage;
ServerIp = serverIP;
ServerPort = serverPort;
ReConnectTimer = new System.Timers.Timer();
ReConnectTimer.Interval = ReConnectMs;
if (ReConnectMs > 0)
{
ReConnectTimer.AutoReset = true;
ReConnectTimer.Elapsed += ReConnectTimer_Elapsed;
}
try
{
......@@ -92,10 +107,12 @@ namespace OnlineStore.Common
m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
onReceived = HandleMessage;
LogUtil.info(LOGGER, "Connect to " + serverIP + ":" + serverPort + " success!");
ReConnectTimer.Start();
return true;
}
else
{
ReConnectTimer.Start();
LogUtil.info(LOGGER, "Connect to " + serverIP + ":" + serverPort + " fail!");
}
}
......@@ -107,11 +124,38 @@ namespace OnlineStore.Common
return false;
}
private void ReConnectTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
if (m_clientSocket != null)
{
if (!m_clientSocket.Connected)
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse(ServerIp), ServerPort);
m_clientSocket.Connect(remoteEndPoint);
if (m_clientSocket.Connected)
{
m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
LogUtil.info(LOGGER, "Connect to " + ServerIp + ":" + ServerPort + " success!");
}
}
}
}
catch (Exception ex)
{
LogUtil.error("重连处理出错:" + ex.ToString());
}
}
/// <summary>
/// 断开连接
/// </summary>
public void close()
{
ReConnectTimer.Stop();
if (m_clientSocket != null)
{
m_clientSocket.Close();
......
......@@ -64,10 +64,9 @@
<Compile Include="IO\AIOBOX\BLL2.cs" />
<Compile Include="IO\AIOBOX\Common.cs" />
<Compile Include="IO\IOManager.cs" />
<Compile Include="IO\KangNaiDe\AITcpClient.cs" />
<Compile Include="IO\KangNaiDe\KNDAIManager.cs" />
<Compile Include="IO\KangNaiDe\KNDManager.cs" />
<Compile Include="IO\KangNaiDe\MasterTcpClient.cs" />
<Compile Include="lineConnect\LineConnect.cs" />
<Compile Include="PanasonicServo\ACCMDManager.cs" />
<Compile Include="PanasonicServo\ACServerManager.cs" />
<Compile Include="PanasonicServo\ACServerManager_Partial.cs" />
......
......@@ -118,3 +118,4 @@ PRO,模拟信号3的地址,AIDI3_Addr,5,,,,,,,
PRO,模拟信号4的地址,AIDI4_Addr,6,,,,,,,
PRO,IO模块对应的DI数量,IO_DILength,192.168.200.11#8,,,,,, ,
PRO,模块对应的DO数量,IO_DOLength,192.168.200.11#8,,,,,,,
PRO,是否有仓门,HasDoor,1,,,,,,,
......@@ -93,7 +93,7 @@ namespace OnlineStore.DeviceLibrary
IOManager.Init();
//初始化 //连接设备
IOManager.instance.ConnectionIOList(Config.DIODeviceNameList);
KNDAIManager.ConnectionIP(Config.AIDevice_IP);
//KNDAIManager.ConnectionIP(Config.AIDevice_IP);
//scanSocket.OnScanRevice += onCodeReceived;
mainTimer.Enabled = false;
......@@ -184,6 +184,7 @@ namespace OnlineStore.DeviceLibrary
storeStatus = StoreStatus.ResetMove;
//启动温湿度服务器
HumitureController.Init(Config.Humiture_Port);
LineConnect.StartConnect();
ReturnHome();
StartTime = DateTime.Now;
......@@ -338,7 +339,7 @@ namespace OnlineStore.DeviceLibrary
//ComBeforeHomeMove();
//判断叉子没有料盘
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
CloseDoorAndWait();
CloseDoor();
break;
case StoreMoveStep.BOX_H_InOutToP1:
//如果此时轴三还在报警,需要提示错误并等待
......@@ -384,7 +385,7 @@ namespace OnlineStore.DeviceLibrary
ACAxisHomeMove(Config.Comp_Axis);
}
//关闭舱门
CloseDoorAndWait();
CloseDoor();
break;
case StoreMoveStep.BOX_M_H_TOP1_CompressHome:
StoreMove.NextMoveStep(StoreMoveStep.BOX_M_H_TOP1_OtherAxisToP1);
......@@ -416,21 +417,33 @@ namespace OnlineStore.DeviceLibrary
}
}
private void OpenDoorAndWait()
public void OpenDoor(bool IsWait=true)
{
if (Config.HasDoor.Equals(1))
{
Thread.Sleep(60);
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
if (IsWait)
{
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Door_Down, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Door_Up, IO_VALUE.HIGH));
}
private void CloseDoorAndWait()
}
}
public void CloseDoor(bool IsWait=true)
{
if (Config.HasDoor.Equals(1))
{
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
if (IsWait)
{
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Door_Down, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Door_Up, IO_VALUE.LOW));
}
}
}
/// <summary>
/// 原点返回处理
......@@ -464,7 +477,7 @@ namespace OnlineStore.DeviceLibrary
//ComBeforeHomeMove();
//判断叉子没有料盘
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
CloseDoorAndWait();
CloseDoor();
break;
case StoreMoveStep.BOX_H_InOutToP1:
......@@ -631,6 +644,7 @@ namespace OnlineStore.DeviceLibrary
TimeSpan span = DateTime.Now - StartTime;
IsRun = false;
LineConnect.StopConnect();
IOManager.instance.CloseAllDO();
if (IsHasCompress_Axis)
{
......@@ -1343,6 +1357,34 @@ namespace OnlineStore.DeviceLibrary
}
public void ReviceLineInStoreCMD(string posId, string plateH, string plateW, string message)
{
//根据发送的posId获取位置列表
ACStorePosition position = CSVPositionReader<ACStorePosition>.GetPositon(posId);
if (position == null)
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
LogUtil.error(LOGGER, "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
LogUtil.info(LOGGER, "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
return;
}
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if (CanStarInOut())
{
IsScanCode = false;
InOutStoreParam param = new InOutStoreParam(message, posId, plateH, plateW, 0);
StartInStoreMove(param);
//如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil.info(LOGGER, StoreName + " 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】 开始入库!");
}
else
{
LogUtil.info(LOGGER, StoreName + " 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】 正在忙碌中,无法入库!");
IsScanCode = false;
}
}
#endregion
......@@ -1500,6 +1542,15 @@ namespace OnlineStore.DeviceLibrary
LOGGER.Error("定时给服务器发送消息出错:", ex);
}
}
if (LineConnect.IsConnect())
{
string posID = "";
if (StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore))
{
posID = StoreMove.MoveParam.PositionNum;
}
LineConnect.SendHeart(Config.Id, Config.CID, (int)storeStatus, (int)storeRunStatus, posID);
}
HumitureController.QueryData();
HumidityProcess();
LedProcess();
......
......@@ -278,7 +278,7 @@ namespace OnlineStore.DeviceLibrary
{
InStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门");
StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
OpenDoorAndWait();
OpenDoor();
InOutBackToP1(moveP.InOut_P1);
}
private void SI_05_DeviceToDoor()
......@@ -372,8 +372,9 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
//关闭舱门
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.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);
CloseDoor(false);
}
else
{
......@@ -389,8 +390,9 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
//关闭舱门
IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
IOManager.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);
CloseDoor(false);
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_09_MoveToBag)
{
......@@ -445,7 +447,7 @@ namespace OnlineStore.DeviceLibrary
ComMoveToPosition(moveP.ComPress_P1);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoorAndWait();
CloseDoor();
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_14_GoBack)
{
......@@ -608,7 +610,7 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NextMoveStep(StoreMoveStep.SO_091_WaitNoTray);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Door, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
OpenDoorAndWait();
OpenDoor();
}
else
......@@ -625,7 +627,7 @@ namespace OnlineStore.DeviceLibrary
OutStoreLog("出库:SO_091 打开仓门,等待门口无料盘 ");
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Door, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
OpenDoorAndWait();
OpenDoor();
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_091_WaitNoTray)
......@@ -651,7 +653,7 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NextMoveStep(StoreMoveStep.SO_13_GoBack);
OutStoreLog("出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoorAndWait();
CloseDoor();
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_13_GoBack)
{
......
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace OnlineStore.DeviceLibrary
{
public class LineConnect
{
private static TcpClient client = null;
public static void StartConnect()
{
string lineServer = ConfigAppSettings.GetValue(Setting_Init.LineServerIp);
int linePort = ConfigAppSettings.GetIntValue(Setting_Init.LineServerPort);
client = new TcpClient();
bool result = client.connect(lineServer, linePort, HandlerMsg,2000);
}
public static void StopConnect()
{
client.close();
}
private static int seq = 1;
public static int nextSeq()
{
if (seq.Equals(Int32.MaxValue))
{
LogUtil.info("seq当前值:" + seq + ",重置seq=0");
seq = 0;
}
Interlocked.Increment(ref seq);
return seq;
}
public static void SendHeart(int id,string cid,int ss,int runs,string posid)
{
try
{
string heartMsg = cmd_heart + cmd_spilt + id + cmd_spilt + cid + cmd_spilt + nextSeq() + cmd_spilt + ss + cmd_spilt + runs + cmd_spilt + posid + cmd_spilt;
client.send(heartMsg + "\r\n");
}catch(Exception ex)
{
LogUtil.error("SendHeart 出错:"+ex.ToString());
}
}
public static void OutStoreEnd(int id, string cid, int ss, int runs, string posid, string plateH, string plateW)
{
try
{
string heartMsg = cmd_outend + cmd_spilt + id + cmd_spilt + cid + cmd_spilt + nextSeq() + cmd_spilt + ss + cmd_spilt + runs + cmd_spilt + posid + cmd_spilt;
string msg = heartMsg + posid + cmd_spilt + plateH + cmd_spilt + plateW + cmd_spilt;
client.send(msg + "\r\n");
}
catch (Exception ex)
{
LogUtil.error("OutStoreEnd 出错:" + ex.ToString());
}
}
private static void HandlerMsg(string message)
{
try
{
string[] msgArray = message.Split(cmd_spilt);
if (msgArray.Length > 4)
{
string cmd = msgArray[0];
if (cmd.Equals(cmd_startIn))
{
string posId = msgArray[1];
string plateH = msgArray[2];
string plateW = msgArray[3];
string code = msgArray[4];
StoreManager.Store.ReviceLineInStoreCMD(posId, plateH, plateW, code);
}
}
}
catch (Exception ex)
{
LogUtil.error("HandlerMsg 出错:" + ex.ToString());
}
}
public static char cmd_spilt = ';';
private static string cmd_heart = "heart";
private static string cmd_outend = "outend";
private static string cmd_startIn = "starIn";
public static bool IsConnect()
{
return true;
}
}
}
......@@ -452,53 +452,53 @@ namespace OnlineStore.LoadCSVLibrary
public string Humiture_Port { get; set; }
/// <summary>
/// PRO 模拟量IO模块的IP地址 AIDevice_IP 192.168.200.11
/// </summary>
[ConfigProAttribute("AIDevice_IP", true)]
public string AIDevice_IP { get; set; }
/// <summary>
/// PRO,模拟信号1默认高度,AIDI1_DefaultPosition,1,,,,,,,
/// </summary>
[ConfigProAttribute("AIDI1_DefaultPosition", true)]
public double AIDI1_DefaultPosition { get; set; }
/// <summary>
/// PRO,模拟信号2默认高度,AIDI2_DefaultPosition,1,,,,,,,
/// </summary>
[ConfigProAttribute("AIDI2_DefaultPosition", true)]
public double AIDI2_DefaultPosition { get; set; }
/// <summary>
/// PRO,模拟信号3默认高度,AIDI3_DefaultPosition,1,,,,,,,
/// </summary>
[ConfigProAttribute("AIDI3_DefaultPosition", false )]
public double AIDI3_DefaultPosition { get; set; }
/// <summary>
/// PRO,模拟信号4默认高度,AIDI4_DefaultPosition,1,,,,,,,
/// </summary>
[ConfigProAttribute("AIDI4_DefaultPosition", false )]
public double AIDI4_DefaultPosition { get; set; }
/// <summary>
/// PRO 模拟信号1的地址 AIDI1_Addr 7
/// </summary>
[ConfigProAttribute("AIDI1_Addr", true)]
public int AIDI1_Addr { get; set; }
/// <summary>
/// PRO 模拟信号2的地址 AIDI2_Addr 8
/// </summary>
[ConfigProAttribute("AIDI2_Addr", true)]
public int AIDI2_Addr { get; set; }
/// <summary>
/// PRO 模拟信号3的地址 AIDI3_Addr 5
/// </summary>
[ConfigProAttribute("AIDI3_Addr", false )]
public int AIDI3_Addr { get; set; }
/// <summary>
/// PRO 模拟信号4的地址 AIDI4_Addr 6
/// </summary>
[ConfigProAttribute("AIDI4_Addr", false )]
public int AIDI4_Addr { get; set; }
///// <summary>
///// PRO 模拟量IO模块的IP地址 AIDevice_IP 192.168.200.11
///// </summary>
//[ConfigProAttribute("AIDevice_IP", true)]
//public string AIDevice_IP { get; set; }
///// <summary>
///// PRO,模拟信号1默认高度,AIDI1_DefaultPosition,1,,,,,,,
///// </summary>
//[ConfigProAttribute("AIDI1_DefaultPosition", true)]
//public double AIDI1_DefaultPosition { get; set; }
///// <summary>
///// PRO,模拟信号2默认高度,AIDI2_DefaultPosition,1,,,,,,,
///// </summary>
//[ConfigProAttribute("AIDI2_DefaultPosition", true)]
//public double AIDI2_DefaultPosition { get; set; }
///// <summary>
///// PRO,模拟信号3默认高度,AIDI3_DefaultPosition,1,,,,,,,
///// </summary>
//[ConfigProAttribute("AIDI3_DefaultPosition", false )]
//public double AIDI3_DefaultPosition { get; set; }
///// <summary>
///// PRO,模拟信号4默认高度,AIDI4_DefaultPosition,1,,,,,,,
///// </summary>
//[ConfigProAttribute("AIDI4_DefaultPosition", false )]
//public double AIDI4_DefaultPosition { get; set; }
///// <summary>
///// PRO 模拟信号1的地址 AIDI1_Addr 7
///// </summary>
//[ConfigProAttribute("AIDI1_Addr", true)]
//public int AIDI1_Addr { get; set; }
///// <summary>
///// PRO 模拟信号2的地址 AIDI2_Addr 8
///// </summary>
//[ConfigProAttribute("AIDI2_Addr", true)]
//public int AIDI2_Addr { get; set; }
///// <summary>
///// PRO 模拟信号3的地址 AIDI3_Addr 5
///// </summary>
//[ConfigProAttribute("AIDI3_Addr", false )]
//public int AIDI3_Addr { get; set; }
///// <summary>
///// PRO 模拟信号4的地址 AIDI4_Addr 6
///// </summary>
//[ConfigProAttribute("AIDI4_Addr", false )]
//public int AIDI4_Addr { get; set; }
/// <summary>
/// PRO IO模块对应的DI数量 IO_DILength 192.168.200.10#16;192.168.200.11#4
......@@ -511,6 +511,11 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("IO_DOLength")]
public string IO_DOLength { get; set; }
/// <summary>
/// PRO 是否有仓门 HasDoor 1
/// </summary>
[ConfigProAttribute("HasDoor")]
public int HasDoor { get; set; }
protected override void initMustHavePro()
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!