public static void SetVirtualIndexer(PlcMaster master, VirtualIndexerStates virtualIndexer) { byte[] dummy = { }; if (master == null) { return; } if (master.connected) { master.WriteSingleRegister(4, 1, master.VirtualIndexerStartAddress, ModbusTcpHelper.WordArrayToByteArray(new[] { Convert.ToInt32(virtualIndexer) }, 1), ref dummy); } }
public void SetVirtualIndexer(VirtualIndexerStates virtualIndexer) { _memory[PlcScanStartAddress + 4] = Convert.ToByte(virtualIndexer); }
private void VirtualIndexerStateChanged(VirtualIndexerStates state) { switch (state) { case VirtualIndexerStates.NotIndexed: SetLabelText(lbl_VirtualIndexer, "Not Used"); break; case VirtualIndexerStates.NewlyIndexed: SetLabelText(lbl_VirtualIndexer, "Newly Indexed"); _machineData.VirtualIndexer.ShiftProductStationRight("", 1, 1, 1); _dataAcquisition.SetVirtualIndexer(VirtualIndexerStates.UpdateTraceabilityStatus); break; case VirtualIndexerStates.IndexConfirmed: SetLabelText(lbl_VirtualIndexer, "Index Confirmed"); break; case VirtualIndexerStates.Reset: SetLabelText(lbl_VirtualIndexer, "Reset"); _machineData.VirtualIndexer.Clear(); _dataAcquisition.SetVirtualIndexer(VirtualIndexerStates.IndexConfirmed); break; case VirtualIndexerStates.WaitingTraceabilityStatusCheck: SetLabelText(lbl_VirtualIndexer, "Waiting Traceability Status Check"); if (EnableVirtualIndexer && _machineData.ProductInLoadingStatus == ProductStatus.LoadedNeedTraceabilityCheck) { var product = ReadLoading(); if (product == string.Empty) { _dataAcquisition.UpdateProductInLoadingStatus(ProductStatus.TraceabilityCheckedNok); break; } int status; CheckReferenceLoadIfUnMatch(product); var result = _thisMachine.LoadProduct(product, "", out status); _dataAcquisition.UpdateProductInLoadingStatus(result ? ProductStatus.TraceabilityCheckedOk : ProductStatus.TraceabilityCheckedNok); if (result && EnableVirtualIndexer) { _machineData.VirtualIndexer.SetProductToStation(0, product, 1, 1); VirtualIndexerToListBox(lb_Indexer); _dataAcquisition.SetVirtualIndexer(VirtualIndexerStates.IndexConfirmed); } } break; case VirtualIndexerStates.UpdateTraceabilityStatus: SetLabelText(lbl_VirtualIndexer, "Waiting Unloading Traceability Status Update"); if (EnableVirtualIndexer && _machineData.ProductInUnloadingStatus == ProductStatus.LoadedNeedTraceabilityStatusUpdateNOk) { var product = ReadUnloading(); var result = false; if (product != string.Empty) { int status; result = _thisMachine.UpdateProductStatusNOk(product, "Auto", out status); } _dataAcquisition.UpdateProductInUnloadingStatus( result ? ProductStatus.TraceabilityStatusUpdated : ProductStatus.TraceabilityStatusNotUpdated); _dataAcquisition.SetVirtualIndexer(VirtualIndexerStates.WaitingTraceabilityStatusCheck); } if (EnableVirtualIndexer && _machineData.ProductInUnloadingStatus == ProductStatus.LoadedNeedTraceabilityStatusUpdateOk) { var product = ReadUnloading(); var result = false; if (product != string.Empty) { int status; result = _thisMachine.UpdateProductStatusOk(product, "Auto", out status); } _dataAcquisition.UpdateProductInUnloadingStatus( result ? ProductStatus.TraceabilityStatusUpdated : ProductStatus.TraceabilityStatusNotUpdated); _dataAcquisition.SetVirtualIndexer(VirtualIndexerStates.WaitingTraceabilityStatusCheck); } break; } VirtualIndexerToListBox(lb_Indexer); }
public void SetVirtualIndexer(VirtualIndexerStates virtualIndexer) { PlcCommand.SetVirtualIndexer(_plcMaster, virtualIndexer); }