CN111401802A - Automatic inventory making method based on two-dimensional code recognition - Google Patents

Automatic inventory making method based on two-dimensional code recognition Download PDF

Info

Publication number
CN111401802A
CN111401802A CN202010104708.7A CN202010104708A CN111401802A CN 111401802 A CN111401802 A CN 111401802A CN 202010104708 A CN202010104708 A CN 202010104708A CN 111401802 A CN111401802 A CN 111401802A
Authority
CN
China
Prior art keywords
ctrl
coil
steel coil
scanner
scanning result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010104708.7A
Other languages
Chinese (zh)
Inventor
张科科
王映红
么坤
胡运杰
唐凤敏
高国庆
李福印
李明宇
秦建伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tangshan Iron and Steel Group Co Ltd
HBIS Co Ltd Tangshan Branch
Original Assignee
Tangshan Iron and Steel Group Co Ltd
HBIS Co Ltd Tangshan Branch
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tangshan Iron and Steel Group Co Ltd, HBIS Co Ltd Tangshan Branch filed Critical Tangshan Iron and Steel Group Co Ltd
Priority to CN202010104708.7A priority Critical patent/CN111401802A/en
Publication of CN111401802A publication Critical patent/CN111401802A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • G06K17/0022Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisious for transferring data to distant stations, e.g. from a sensing device
    • G06K17/0025Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisious for transferring data to distant stations, e.g. from a sensing device the arrangement consisting of a wireless interrogation device in combination with a device for optically marking the record carrier

Abstract

The invention relates to an automatic coil warehousing method based on two-dimensional code recognition, which belongs to the technical field of intelligent manufacturing and adopts the technical scheme that an unmanned overhead traveling crane generates an operation work order according to daily work content and sends the work order number of an operation steel coil to an overhead traveling crane P L C, a scanner starts to work at a proper time according to a preset strategy, the scanner feeds a scanning result back to the overhead traveling crane P L C, verifies the scanning result and the steel coil number in the work order, executes different strategies according to different scanning results, verifies the scanning result and information in a database, and carries out color change prompt on an HMI (human machine interface) by a system to remind an operator of paying for the steel coil.

Description

Automatic inventory making method based on two-dimensional code recognition
Technical Field
The invention relates to an automatic inventory making method based on two-dimension code recognition, and belongs to the technical field of intelligent manufacturing.
Background
The unmanned overhead traveling crane control system is a product which is informationized and gradually improved along with the development of enterprise logistics, and the production and transportation efficiency can be obviously improved due to the improvement of the unmanned overhead traveling crane automation technology. Saving a large amount of resources and improving the datamation of enterprise logistics.
Along with the increase of production line production speed increase and steel coil warehouse-in and warehouse-out frequency, the requirement of an unmanned overhead traveling crane system on the accuracy of steel coil information in a warehouse area is higher and higher, the warehouse technology is also improved more and more, the current mainstream technology is manual warehouse, namely, a worker verifies and updates the steel coil information and the information in the system in the warehouse area through a handheld PAD. The hand-held garage PAD system was put into use by high-strength automobile panels of tang steel in 6 months 2014.
In the existing coil stock method, an operator needs to identify information abnormal steel coils in time and process the information abnormal steel coils in time, and certain potential safety hazards can be generated on the operation of an unmanned overhead travelling crane when the tracking of the information of the steel coils is inaccurate and the manual coil stock is not found in time. Therefore, a new method is needed to solve the problem of poor real-time performance of the manual disc library.
Disclosure of Invention
The invention aims to provide an automatic coil warehousing method based on two-dimensional code identification, wherein in the real-time running process of an unmanned overhead traveling crane, label information on a steel coil is detected in real time, the label information is verified with library diagram information in a system, an abnormal steel coil is identified in time through a preset algorithm, and finally prompt is given in a coil warehousing system to remind coil warehousing personnel to carry out key coil warehousing on the abnormal steel coil; the accuracy of the steel coil information of the reservoir area is improved, the coil stock efficiency is improved, the frequency of entering an unmanned overhead traveling crane operation area by workers is reduced, the safety factor of the reservoir area is improved, a large amount of manpower is saved, and the problems existing in the background technology are effectively solved.
Step a, an unmanned overhead traveling crane generates an operation work order according to daily work content, and sends the work order number of an operation steel coil to an overhead traveling crane P L C;
b, starting the scanner to work according to a preset strategy at a proper time;
c, the scanner feeds back the scanning result to the crown block P L C, verifies the scanning result with the steel coil number in the work order, and executes different strategies according to different scanning results;
d, verifying the scanning result and the information in the database, and correcting the database according to a verification strategy;
and e, the system carries out color change prompt on the abnormal steel coil on the HMI to remind an operator to carry out coil warehousing on the steel coil.
In the step b, two rotating platforms which can be controlled by P L C are additionally arranged at the positions of the protective shoes of the lifting appliance, a two-dimensional code scanner is installed on the platforms, a height and speed control model for descending of the main hook is made at the same time so that the two-dimensional code scanner can stay at a proper position, and meanwhile, a working strategy of the two-dimensional code scanner is made by combining the running state of an unmanned overhead travelling crane.
In the step C, a communication mode (422 serial port communication mode) of the two-dimensional code scanner and the CPU of the P L C is established, and the steel coil number identified by the scanner and the steel coil number in the work order are verified.
And d, establishing real-time communication between the crown block and the library drawing system through a pre-established WIFI network, transmitting a scanning result of the crown block P L C to the library drawing system through the WIFI network in real time, judging the current saddle position by the system according to the coordinates of the X axis and the Y axis of the crown block, and verifying the scanning result and the steel coil information in the system on the saddle.
In the step e, the abnormal roll identified in the library graph is marked, an operator is prompted to intervene in time on an overhead crane HMI (color change prompt), message protocols of a secondary overhead crane and a PAD of the library are modified, the abnormal roll prompt is added, and when the abnormal roll exists, the abnormal roll prompt is directly sent to the PAD and marked on a PAD interface.
The invention has the beneficial effects that: in the real-time running process of the unmanned overhead traveling crane, detecting label information on a steel coil in real time, verifying the label information with library map information in the system, identifying abnormal steel coils in time through a preset algorithm, and finally prompting in the library system to remind library personnel to perform key library on the abnormal steel coils; the accuracy of the steel coil information of the reservoir area is improved, the inventory efficiency is improved, the frequency of entering an unmanned overhead traveling crane operation area by workers is reduced, the safety factor of the reservoir area is improved, and a large amount of manpower is saved.
Drawings
FIG. 1 is a hardware retrofit diagram of the present invention;
FIG. 2 is a schematic view of the scanner operating strategy of the present invention;
FIG. 3 is a flow chart of the inventory operation of the present invention;
in the figure: the device comprises a rotary platform 1, a scanner 2, a cable 3, a horizontal limit 4, a vertical limit 5 and a clamp boot 6.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the following will clearly and completely describe the technical solutions of the embodiments of the present invention with reference to the drawings of the embodiments, and it is obvious that the described embodiments are a small part of the embodiments of the present invention, rather than all embodiments, and all other embodiments obtained by a person of ordinary skill in the art without creative work based on the embodiments of the present invention belong to the protection scope of the present invention.
Step a, an unmanned overhead traveling crane generates an operation work order according to daily work content, and sends the work order number of an operation steel coil to an overhead traveling crane P L C;
b, starting the scanner to work according to a preset strategy at a proper time;
c, the scanner feeds back the scanning result to the crown block P L C, verifies the scanning result with the steel coil number in the work order, and executes different strategies according to different scanning results;
d, verifying the scanning result and information in the database, such as the information of the width, the outer diameter, the weight and the like of the steel coil, and correcting the database according to a verification strategy;
and e, the system carries out color change prompt on the abnormal steel coil on the HMI to remind an operator to carry out coil warehousing on the steel coil.
And b, adding two rotating platforms which can be controlled by P L C at the positions of the lifting appliance boots, installing a two-dimensional code scanner on the platforms, simultaneously making a height and speed control model for descending a main hook so that the two-dimensional code scanner stays at a proper position, and simultaneously making working strategies of the two-dimensional code scanner, namely a working flow control strategy, an automatic retry function after identification failure, a rotation control strategy of a motor support and the like, by combining the running state of an unmanned overhead travelling crane.
In the step C, a communication mode (422 serial port communication mode) of the two-dimensional code scanner and a CPU of the P L C is established, a two-dimensional code verification algorithm and the like are compiled, and the steel coil number identified by the scanner and the steel coil number in the work order are verified.
And d, establishing real-time communication between the crown block and the library drawing system through a pre-established WIFI network, transmitting a scanning result of the crown block P L C to the library drawing system through the WIFI network in real time, judging the current saddle position by the system according to the coordinates of the X axis and the Y axis of the crown block, and verifying the scanning result and the steel coil information in the system on the saddle.
And e, designing a processing flow algorithm of the abnormal steel coil, labeling the abnormal coil identified in the library diagram, prompting timely intervention of an operator on an overhead traveling crane HMI (color change prompt), modifying message protocols of a secondary overhead traveling crane and a PAD (coil library), increasing the abnormal coil prompt, directly sending the abnormal coil prompt to the PAD when the abnormal coil exists, and marking on the PAD interface.
In practical application, step a, the unmanned overhead traveling crane generates an operation work order according to daily work content, and sends the work order number of an operation steel coil to the overhead traveling crane P L C;
b, starting the scanner to work according to a preset strategy at a proper time;
to ensure the realization of the step, two rotating platforms controlled by P L C are added at the position of the hanger shoe, and a two-dimensional code scanner is installed on the platforms, as shown in figure 1.
And meanwhile, a height and speed control model for descending the main hook is made so that the two-dimensional code scanner can stay at a proper position. Meanwhile, the working strategy of the two-dimensional code scanner, namely, the working flow control strategy, the automatic retry function after the failure of recognition, the rotation control strategy of the motor support and the like, is formulated according to the outer diameter information of the steel coil in the work order, and the specific flow is shown in fig. 2.
The position control main codes are as follows:
CASE "HS_CTRL_DB".wStatus OF
CASE "HS_CTRL_DB".wStatus OF
1 : "HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep4Speed * (-1);
"HS_CTRL_DB".wActSts := 1;
IF "JOB_SCH_DB".wJobState = 1 THEN
"HS_CTRL_DB".wStatus := 2; // hoist down for pickup
ELSE
"HS_CTRL_DB".wStatus := 6; // hoist down for place
END_IF;
2 : IF "HS_CTRL_DB".dCurPos<"HS_CTRL_DB".dGoalPos + INT_TO_DINT("HS_SET_DB".wPickupSlowDist) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep2Speed * (-1);
ELSIF "HS_CTRL_DB".dCurPos<("HS_CTRL_DB".dGoalPos + 100) + INT_TO_DINT("GC104".PRODUCT_ODIA / 2) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep3Speed * (-1);
ELSIF "I".H_Up_Stop = TRUE AND "I".H_Up_Slow = TRUE THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep4Speed * (-1);
END_IF;
IF "GC104".CR_SCH_END = '1' THEN
IF "HS_CTRL_DB".dCurPos<("HS_CTRL_DB".dGoalPos + 100) + INT_TO_DINT("GC104".PRODUCT_ODIA / 2) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep1Speed * (-1);
"HS_CTRL_DB".wStatus := 4;
END_IF;
ELSE
3 : IF "I".LF_Bore_Lower AND "HS_CTRL_DB".dOldPos = 0 AND ABS(HS_CTRL_DB.dCurPos- HS_CTRL_DB.dGoalPos)<= 400 THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep2Speed * (-1);
"HS_CTRL_DB".dOldPos := "HS_CTRL_DB".dCurPos;
"HS_CTRL_DB".dDnBoreOndz := "HS_CTRL_DB".dCurPos; // Bore on height
IF "HS_CTRL_DB".dCurPos<"HS_CTRL_DB".dGoalPos + INT_TO_DINT("HS_SET_DB".wPickupSlowDist) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep2Speed * (-1); //-1638;
END_IF;
IF "HS_CTRL_DB".dOldPos<>0 THEN
IF ("HS_CTRL_DB".dOldPos - "HS_CTRL_DB".dCurPos)>INT_TO_DINT("LF_SET_DB".wBoreDiffDist) THEN
"HS_CTRL_DB".wStatus := 5;
END_IF;
IF "I".LF_Bore_Lower = FALSE AND "HS_CTRL_DB".dCurPos<"HS_CTRL_DB".dGoalPos - INT_TO_DINT("HS_SET_DB".wMaxOffset) THEN
"HS_CTRL_DB".bError := TRUE;
"HS_CTRL_DB".wErrCode := 553;
"JOB_SCH_DB".Err.LowerBoreError := TRUE;
END_IF;
ELSE "HS_CTRL_DB".dOldPos = 0 THEN
IF "HS_CTRL_DB".dCurPos<INT_TO_DINT("HS_SET_DB".w3AxisSafeHeight) THEN
END_IF;
4 : IF "HS_CTRL_DB".dCurPos<"HS_CTRL_DB".dGoalPos + 30 THEN
"HS_CTRL_DB".wStatus := 5;
END_IF;
IF "HS_CTRL_DB".dCurpos<= INT_TO_DINT("HS_SET_DB".wPosMinEndDz +"HS_SET_DB".wDfinal) OR "I".H_Down_Stop = FALSE THEN
"HS_CTRL_DB".wLowerCamErrCnt := "HS_CTRL_DB".wLowerCamErrCnt + "INIT_SET_DB".wOB35CyclicInterrupts;
ELSIF "I".H_Down_Slow = FALSE AND "I".H_Down_Stop AND "HS_CTRL_DB".dCurPos<INT_TO_DINT("HS_SET_DB".w3AxisSafeHeight) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep1Speed * (-1);
END_IF;
5 : IF "JOB_SCH_DB".wJobState = 1 THEN
IF "I".LF_Bore_Lower = FALSE THEN // Bore Off Error
"HS_CTRL_DB".bError := TRUE;
END_IF;
"HS_CTRL_DB".wSetSpeed := 0;
6 : IF "HS_CTRL_DB".dCurPos<"HS_CTRL_DB".dGoalPos + INT_TO_DINT("HS_SET_DB".wPlaceSlowDist) THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep1Speed * (-1);
"HS_CTRL_DB".wStatus := 7;
ELSIF "I".H_Up_Stop = TRUE AND "I".H_Up_Slow = TRUE THEN
"HS_CTRL_DB".wSetSpeed := "HS_SET_DB".wStep4Speed * (-1);
END_IF;
IF "HS_CTRL_DB".dCurPos<INT_TO_DINT("HS_SET_DB".w3AxisSafeHeight) AND
"HS_CTRL_DB".dCurPos>"HS_CTRL_DB".dGoalPos + INT_TO_DINT("HS_SET_DB".wPlaceSlowDist) THEN
IF "LF_CTRL_DB".bLoading =FALSE THEN
"HS_CTRL_DB".wLoadErrCnt := 2000;
ELSE
"HS_CTRL_DB".wLoadErrCnt := 0;
END_IF;
IF ("HS_CTRL_DB".dLcWeight<"GC104".PRODUCT_WEIGHT - INT_TO_DINT("INIT_SET_DB".wBottomWgtAllow)) AND
"INIT_SET_DB".bLoadcellUse THEN
"HS_CTRL_DB".wLoadcellErrCnt := "HS_CTRL_DB".wLoadcellErrCnt + "INIT_SET_DB".wOB35CyclicInterrupts;
ELSE
"HS_CTRL_DB".wLoadcellErrCnt := 0;
END_IF;
END_IF;
7 : IF "HS_CTRL_DB".dOldPos<>0 THEN
IF ("HS_CTRL_DB".dOldPos - "HS_CTRL_DB".dCurPos)>INT_TO_DINT("HS_SET_DB".wUnloadDetectMargin) THEN
"HS_CTRL_DB".wStatus := 5;
ELSIF "I".H_Down_Stop = FALSE AND ABS("HS_CTRL_DB".dOldPos -"HS_CTRL_DB".dCurPos)>100 THEN
"HS_CTRL_DB".wStatus := 5;
ELSIF "I".LF_Bore_Upper AND "INIT_SET_DB".bUpperBoreYNAND ("HS_CTRL_DB".dOldPos - "HS_CTRL_DB".dCurPos)>50 THEN
"HS_CTRL_DB".wStatus := 5;
END_IF;
END_IF;
END_IF;
10 : IF "HS_CTRL_DB".bRetry THEN
IF ("HS_CTRL_DB".dCurPos>"HS_CTRL_DB".dGoalPos + INT_TO_DINT(GC104.PRODUCT_ODIA)) OR
("HS_CTRL_DB".dCurPos>INT_TO_DINT("HS_SET_DB".wPosMaxEndDz - 200))THEN
"HS_CTRL_DB".wSetSpeed := 0;
END_IF;
IF "HS_CTRL_DB".wCurSpeed = 0 THEN
"HS_CTRL_DB".wStatus := 1;
END_IF;
END_IF;
END_CASE;
END_FUNCTION
the main control code excerpts for scanner operation are shown below:
CASE "LF_CTRL_DB".wArmStatus OF
1: "LF_CTRL_DB".bArmOpenRun := FALSE;
"LF_CTRL_DB".bArmCloseRun := FALSE;
"LF_CTRL_DB".bArmPUCloseRun := FALSE;
IF "LF_CTRL_DB".bArmCloseStart = TRUE THEN
"LF_CTRL_DB".bArmPUCloseRun := TRUE;
ELSIF "LF_CTRL_DB".dArmCurWidth<"LF_CTRL_DB".dArmGoalWidthTHEN
"LF_CTRL_DB".bArmOpenRun := TRUE;
ELSIF "LF_CTRL_DB".dArmCurWidth>= "LF_CTRL_DB".dArmGoalWidthTHEN
"LF_CTRL_DB".bArmCloseRun := TRUE;
END_IF;
"LF_CTRL_DB".wArmAtcState := 1; // Arm status ->1:moving 2:completion
"LF_CTRL_DB".wArmStatus := 2;
2:
IF "LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_CTRL_DB".bArmDrvFaultStop =FALSE AND (("I".LF_Grip_R = TRUE AND "I".LF_Grip_L = FALSE) OR ("I".LF_Grip_L= TRUE AND "I".LF_Grip_R = FALSE)) THEN
"LF_EDIT_DB".dPUCloseGripChkTime := "LF_EDIT_DB".dPUCloseGripChkTime + "INIT_SET_DB".wOB35CyclicInterrupts;
IF "LF_EDIT_DB".dPUCloseGripChkTime>10000 THEN
"LF_EDIT_DB".dPUCloseGripChkTime := 0;
"LF_EDIT_DB".wArmErrCode := 204;
"JOB_SCH_DB".Err.CoilGripError := TRUE;
END_IF;
END_IF;
IF (("LF_CTRL_DB".bArmOpenRun = TRUE OR "LF_CTRL_DB".bArmCloseRun = TRUE)AND
("I".LF_Load_L = TRUE OR "I".LF_Load_R = TRUE OR "LF_CTRL_DB".bLoading =TRUE)) OR ("LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_CTRL_DB".bLoading =TRUE) THEN
"JOB_SCH_DB".Er2.LF_ArmLoadDetect := TRUE;
END_IF;
END_IF;
IF ABS( "LF_CTRL_DB".dArmCurWidth - "LF_CTRL_DB".dArmOldWidth )<300(*"LF_SET_DB".wArmEncMoveMax*) THEN "LF_CTRL_DB".dArmOldWidth := "LF_CTRL_DB".dArmCurWidth;
END_IF;
((("LF_CTRL_DB".bArmOpenRun = TRUE OR "LF_CTRL_DB".bArmCloseRun = TRUE)AND "LF_EDIT_DB".dArmAbsPos>= "LF_EDIT_DB".dArmOldPos) OR ("LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_EDIT_DB".dArmAbsPos>= "LF_EDIT_DB".dArmOldPosAND "LF_CTRL_DB".dArmCurWidth>"LF_CTRL_DB".dArmGoalWidth )) THEN
"JOB_SCH_DB".Err.Arm_ControlError := TRUE;
ELSE
"LF_EDIT_DB".wArmReverseRetryCnt := "LF_EDIT_DB".wArmReverseRetryCnt + 1;
"LF_CTRL_DB".wArmStatus := 1;
RETURN;
END_IF;
END_IF;
"LF_EDIT_DB".dArmOldPos := "LF_EDIT_DB".dArmAbsPos;
IF ("LF_CTRL_DB".bArmOpenRun = TRUE OR "LF_CTRL_DB".bArmCloseRun = TRUE)AND"LF_CTRL_DB".bArmPickUpFastCo = FALSE AND "LF_CTRL_DB".bScadownCo = FALSETHEN "LF_CTRL_DB".bScaupCo := TRUE;
ELSE
"LF_CTRL_DB".bScaupCo := FALSE;
END_IF;
IF "LF_CTRL_DB".bArmPUCloseRun = TRUE THEN
IF ("LF_CTRL_DB".dArmCurWidth>("LF_CTRL_DB".dArmGoalWidth + "LF_CTRL_DB".dScadownDist)) THEN
"LF_CTRL_DB".bArmPickUpFastCo := TRUE;
"LF_CTRL_DB".bScadownCo := FALSE;
ELSE
"LF_CTRL_DB".bArmPickUpFastCo := FALSE;
"LF_CTRL_DB".bScadownCo := TRUE;
END_IF;
END_IF;
IF ("LF_CTRL_DB".bArmOpenRun = TRUE OR "LF_CTRL_DB".bArmCloseRun = TRUEOR "LF_CTRL_DB".bArmPUCloseRun) AND
("LF_CTRL_DB".dArmCurWidth>"LF_CTRL_DB".dArmGoalWidth + "LF_CTRL_DB".dScadownDist OR
"LF_CTRL_DB".dArmCurWidth<"LF_CTRL_DB".dArmGoalWidth - "LF_CTRL_DB".dScadownDist) THEN
"LF_CTRL_DB".bScaupCo := TRUE;
"LF_CTRL_DB".bScadownCo := FALSE;
ELSE
"LF_CTRL_DB".bScaupCo := FALSE;
"LF_CTRL_DB".bScadownCo := TRUE;
END_IF;
IF "LF_CTRL_DB".bArmDrvFaultStop = FALSE AND "LF_CTRL_DB".bLaserHolding =FALSE THEN
IF ("LF_CTRL_DB".bArmCloseRun = TRUE OR "LF_CTRL_DB".bArmPUCloseRun =TRUE) THEN
IF "I".Sca_limit_up = FALSE THEN
"LF_CTRL_DB".bArmCloseCo := TRUE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
ELSE
"LF_CTRL_DB".bArmCloseCo := FALSE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
END_IF;
ELSE
"LF_CTRL_DB".bArmCloseCo := FALSE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
"LF_CTRL_DB".wArmStatus := 3;
END_IF;
ELSE
"LF_CTRL_DB".bArmCloseCo := FALSE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
END_IF;
IF ("LF_CTRL_DB".bArmCloseRun = TRUE OR "LF_CTRL_DB".bArmOpenRun = TRUE)AND "LF_EDIT_DB".dArmAbsPos<= "LF_SET_DB".wArmObjOffset THEN
"LF_CTRL_DB".bArmCloseCo := FALSE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
"LF_CTRL_DB".wArmStatus := 3;
// pick up close finish timing (Grip On)
ELSIF "LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_CTRL_DB".bGripOn THEN
"LF_CTRL_DB".bArmCloseCo := FALSE;
"LF_CTRL_DB".bArmOpenCo := FALSE;
"LF_CTRL_DB".wArmStatus := 3;
END_IF;
IF "LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_CTRL_DB".bGripOn = FALSETHEN
"LF_EDIT_DB".dArmDoneChkTime := 0;
"LF_CTRL_DB".wArmStatus := 1;
END_IF;
IF ("LF_CTRL_DB".bArmCloseRun = TRUE OR "LF_CTRL_DB".bArmOpenRun = TRUE) THEN
IF "LF_EDIT_DB".dArmAbsPos<= "LF_SET_DB".wArmCtrlOffset THEN "LF_CTRL_DB".wArmAtcState := 2; // Arm status ->1:moving 2:completion
"LF_CTRL_DB".bArmCtrlStart := FALSE;
ELSE
IF "LF_EDIT_DB".wArmCtrlChkCnt>3 THEN
"JOB_SCH_DB".Err.Arm_ControlError := TRUE; // arm control fault
ELSE // Retry
"LF_EDIT_DB".dArmDoneChkTime := 0; "LF_EDIT_DB".wArmCtrlChkCnt :="LF_EDIT_DB".wArmCtrlChkCnt + 1;
"LF_CTRL_DB".wArmStatus := 1;
END_IF;
END_IF;
ELSIF "LF_CTRL_DB".bArmPUCloseRun = TRUE AND "LF_CTRL_DB".bGripOn = TRUE THEN // pick up close finish Check(grip)
IF "LF_EDIT_DB".dArmAbsPos>= "LF_SET_DB".wArmMaxOver THEN
"JOB_SCH_DB".Er2.CoilWidthError := TRUE; ELSE
"LF_CTRL_DB".wArmAtcState := 2; // Arm status ->1:moving 2:completion
"LF_CTRL_DB".bArmCtrlStart := FALSE;
END_IF;
END_IF;
END_IF;
ELSE
// Statements_ELSE
END_CASE;
END_FUNCTION
c, the scanner feeds back the scanning result to the crown block P L C, verifies the scanning result with the steel coil number in the work order, and executes different strategies according to different scanning results;
in order to ensure the realization of the step, a communication mode (422 serial port communication mode) of the two-dimensional code scanner and a CPU (central processing unit) of P L C is established, a two-dimensional code verification algorithm and the like are compiled, and the steel coil number identified by the scanner and the steel coil number in the work order are verified.
Code excerpts are shown below:
SRCBLK.ANY_id := 16#10;
SRCBLK.DataType := 16#2;
SRCBLK.Length := INT_TO_WORD(NO);
SRCBLK.DB_No := DBNO;
SRCBLK.Byte_Pt := DINT_TO_DWORD(DWORD_TO_DINT(DBPT)*8) OR DW#16#84000000;
Jdo := SFC20(SRCBLK := SRC_BLK, RET_VAL := Ido, DSTBLK := IDATAS);
Mok := 0;
FOR Ido := 0 TO NO - 1 DO
Jdo := NO - Ido - 1;
Subs := REAL_TO_DINT(10 ** Jdo);
IF IDATAS[Ido]= ' ' OR IDATAS[Ido]= INT_TO_CHAR(0) THEN Data :=0;
ELSIF IDATAS[Ido]= '.' THEN Data := 0; Mok := Mok / 10;
ELSE Data := CHAR_TO_INT(IDATAS[Ido])-48;
END_IF;
d, verifying the scanning result and information in the database, such as the information of the width, the outer diameter, the weight and the like of the steel coil, and correcting the database according to a verification strategy;
in order to ensure the realization of the step, the real-time communication between the crown block and the library drawing system is established through the pre-established WIFI network, the scanning result of the crown block P L C is transmitted to the library drawing system through the WIFI network in real time, and the system judges the current saddle position according to the coordinates of the X axis and the Y axis of the crown block and verifies the scanning result and the steel coil information in the system on the saddle.
The main code excerpts are shown below:
if (dtL1.Rows.Count == 2)
{ if ((dtL1.Rows[0]["SKID_STATUS_ID"].ToString() == "4" || dtL1.Rows[0]["SKID_STATUS_ID"].ToString() == "3")&&(dtL1.Rows[1]["SKID_STATUS_ID"].ToString() == "4" || dtL1.Rows[1]["SKID_STATUS_ID"].ToString() == "3")&&dtL1.Rows[0]["coil_no"].ToString() != ""&&dtL1.Rows[1]["coil_no"].ToString() != "")
{if (dtL1.Rows[0]["SKID_PURPOSEID"].ToString() == dtL1.Rows[1]["SKID_PURPOSEID"].ToString())
{string sqlL1Coilorder = "select * from OUT_TW_WORKORDER where(coilno = '" + dtL1.Rows[0]["coil_no"].ToString() + "' or coilno = '" +dtL1.Rows[1]["coil_no"].ToString() + "') and workstatus<>'G'";
DataTable dtL1Coilorder = new DataTable();
DB.FillDataTable(sqlL1Coilorder, dtL1Coilorder);
if (dtL1Coilorder.Rows.Count == 0)
{if (dtL1.Rows[0]["coil_no"].ToString() != coilno&&dtL1.Rows[1]["coil_no"].ToString() != coilno)
{ double L1_mincoiloutdiameter = min(dtL1.Rows[0]["COIL_OUTSIDE_DIAMETER"].ToString(), dtL1.Rows[1]["COIL_OUTSIDE_DIAMETER"].ToString());
double L1_maxcoiloutdiameter = max(dtL1.Rows[0]["COIL_OUTSIDE_DIAMETER"].ToString(), dtL1.Rows[1]["COIL_OUTSIDE_DIAMETER"].ToString());
double L1_mincoilwidth = min(dtL1.Rows[0]["COIL_WIDTH"].ToString(),dtL1.Rows[1]["COIL_WIDTH"].ToString());
double L1_maxcoilwidth = max(dtL1.Rows[0]["COIL_WIDTH"].ToString(),dtL1.Rows[1]["COIL_WIDTH"].ToString());
verification of one-layer two-roll outer diameter deviation
if (Range _ offset _ limit (L1 _ minicoioudetimeter, L1 _ maxcoiutermeter, outdimeter _ min, outdimeter _ max, offset _ odermeter _ smallthanamin, offset _ odermeter _ minmax, offset _ odermeter _ biggerthamax, "(verify one layer:" + strSkid1 + "," + strkid 2+ ") two-roll small-roll outer diameter", check _ replay))
{
V/verify one-layer two-roll width deviation
if (Range _ offset _ limit (L1 _ mincoilbidth, L1 _ maxcoilbidth, width _ min, width _ max, offset _ width _ smallthanmin, offset _ width _ minmax, offset _ width _ biggerthanmax, "(verify one layer:" + StrSkid1 + "," + StrSkid2+ ") two-volume small-volume width", ref check _ replay))
{
L1ok = true;
}
}
}
else
check _ coast = "(verify one layer:" + strSkid1 + "," + strSkid2+ ") two-layer roll to be placed is the same as one-layer roll number (one layer is placed into two layers by itself)";
}
//else
// check _ coast = "(verify one layer:" + strSkid1 + "," + strSkid2+ ") one layer of two rolls has a non 'G' work order";
}
else
check _ replay = "(verify one layer:" + strSkid1 + "," + strSkid2+ ") one layer of two bits different in ski _ purposid;
}
else
check _ coast = "(verify one layer:" + strSkid1 + "," + strSkid2+ ") one layer two bits without volume (or only one volume)";
}
else
check _ reason = "(verify one layer) one layer two bit exception";
if (L1ok)
{ string sqlL2coil = "select COIL_OUTSIDE_DIAMETER,COIL_WIDTH,EXIT_THICKfrom cold_coil_info where COIL_NO = '" + coilno.Trim() + "'";
DataTable dtL2coil = new DataTable();
DB.FillDataTable(sqlL2coil, dtL2coil);
if (dtL2coil.Rows.Count != 0)
{
double L2_coiloutdiameter = Convert.ToDouble(dtL2coil.Rows[0]["COIL_OUTSIDE_DIAMETER"].ToString());
double L2_coilwidth = Convert.ToDouble(dtL2coil.Rows[0]["COIL_WIDTH"].ToString());
double L2_coilthick = Convert.ToDouble(dtL2coil.Rows[0]["EXIT_THICK"].ToString());
double L1_coil1outdiameter = Convert.ToDouble(dtL1.Rows[0]["COIL_OUTSIDE_DIAMETER"].ToString());
double L1_coil2outdiameter = Convert.ToDouble(dtL1.Rows[1]["COIL_OUTSIDE_DIAMETER"].ToString());
double L1_mincoiloutdiameter = min(dtL1.Rows[0]["COIL_OUTSIDE_DIAMETER"].ToString(), dtL1.Rows[1]["COIL_OUTSIDE_DIAMETER"].ToString());
double L1_mincoilwidth = min(dtL1.Rows[0]["COIL_WIDTH"].ToString(), dtL1.Rows[1]["COIL_WIDTH"].ToString());
double L1_mincoilthick = min(dtL1.Rows[0]["COIL_THICK"].ToString(), dtL1.Rows[1]["COIL_THICK"].ToString());
verification of the deviation of the outer diameter of the two-layer coil from the one-layer small coil
If (Range _ offset _ limit (L1 _ minicoudetimeter, L2 _ coioudetimeter, outmeter _ min, outmeter _ max, offset _ odemeter _ smallanthamin, offset _ odemeter _ minmax, offset _ odemeter _ biggerthamax, "(two layers are verified:" + strSkid1 + "," + strkid 2+ ") one-layer small roll outer diameter", check _ replay))
if (L2_coiloutdiameter<L1_mincoiloutdiameter + 50) {
if (Range _ offset _ limit (L1 _ coil1 outdimeter, L1 _ coil2 outdimeter, outdimeter _ min, outdimeter _ max, offset _ odor _ meter _ smallthanamin, offset _ odor _ minmax, offset _ odor _ biggerthamax, "(two layers are verified:" + strSkid1 + "," + strkid 2+ ") one-layer small roll outer diameter", check _ replay))
{ if (Range _ offset _ limit (L1 _ mincoilbidth, L2 _ coilbidth, width _ min, width _ max, offset _ width _ smallthnmin, offset _ width _ minmax, offset _ width _ bigghanmax, "(two layers are verified:" + StrSkid1 + "," + StrSkid2+ ") one-layer small roll width", ref check _ replay))
{ if (L1_mincoilthick>0.5) {
If (Range _ ratio _ limit (L1 _ mincoilthick, L2 _ coilthick, thick _ min, thick _ max, offset _ thick _ smallthanmin, offset _ thick _ minmax, offset _ thick _ biggerthanmax, "(two layers are verified:" + StrSkid1 + "," + StrSkid2+ ") one-layer small roll thickness", ref check _ replay))
{ if (Height_limit(L1_coil1outdiameter, L1_coil2outdiameter, L2_coiloutdiameter, height_limit, ref check_reason)) {L2ok = true;}}}}}}}
And e, the system carries out color change prompt on the abnormal steel coil on the HMI to remind an operator to carry out coil warehousing on the steel coil.
In order to ensure the realization of the step, a processing flow algorithm of the abnormal steel coil is designed, the abnormal coil identified in the library graph is marked, an operator is prompted to intervene in time on an overhead traveling crane HMI (color change prompt), message protocols of a secondary overhead traveling crane and a PAD (PAD in the library are modified simultaneously, an abnormal coil prompt is added, and when the abnormal coil exists, the abnormal coil is directly sent to the PAD and marked on a PAD interface;
the main codes are as follows:
if (PublicVar.PlanType == "1" || PublicVar.PlanType == "4" ||PublicVar.PlanType == "5")
{ b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
else
{
if (PublicVar.PlanID == "ALL")
{
//b_skid.Color = Color.FromArgb(255, 160, 0);
if (PublicVar.PlanCalID.Trim() == "")
{
sqlSkid = "select distinct plan_id from CONFIRMPLANLIST_CALwhere coil_no='" + dtSkid.Rows[i]["coil_no"].ToString() + "'";
DataTable dtplan = new DataTable();
DB3.FillDataTable(sqlSkid, dtplan);
if (dtplan.Rows.Count != 0)
{
if (dtSkid.Rows[i]["PLAN_ID"].ToString() == dtplan.Rows[0][0].ToString())
{ b_skid.Color = Color.FromArgb(255, 160, 0);
CALJsq++;
}
else
{
b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
}
else
{
b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
}
else
{ if (dtSkid.Rows[i]["PLAN_ID"].ToString() ==PublicVar.PlanCalID.Trim())
{ b_skid.Color = Color.FromArgb(255, 160, 0);
CALJsq++;
}
else
{
b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
}
}
else
{ if (PublicVar.PlanCalID.Trim() == "")
{//if (dtSkid.Rows[i]["coil_no"].ToString()=="5J026955")
{ int testi = 0;
}
sqlSkid = "select distinct plan_id from CONFIRMPLANLIST_CALwhere coil_no='" + dtSkid.Rows[i]["coil_no"].ToString() + "'";
DataTable dtplan = new DataTable();
DB3.FillDataTable(sqlSkid, dtplan);
if (dtplan.Rows.Count != 0)
{ if (dtSkid.Rows[i]["PLAN_ID"].ToString() == dtplan.Rows[0][0].ToString())
{
b_skid.Color = Color.FromArgb(255, 160, 0);
CALJsq++;
}
else
{
b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color= b_skid.Color;
}
}
catch { }
}
}
else
{
b_skid.Color = Color.Black;
try
{
if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{
b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
}
else
{
if (dtSkid.Rows[i]["PLAN_ID"].ToString() ==PublicVar.PlanCalID.Trim())
{
b_skid.Color = Color.FromArgb(255, 160, 0);
CALJsq++;
} else
{
b_skid.Color = Color.Black;
try
{ if (Convert.ToInt32(dtSkid.Rows[i]["COIL_OUTSIDE_DIAMETER"].ToString())<outDiaLimit)
{ b_skid.Color = Color.FromArgb(0, 0, 255);
B_Pack.Color = b_skid.Color;
}
}
catch { }
}
}
}
}
break;
by adopting the invention, the accuracy of the steel coil library map of the steel unmanned overhead travelling crane library area is improved from the original 97.1% to the current 99.3%, thereby indirectly reducing the occurrence of the events of library area roll smashing, roll turning and the like and reducing the occurrence of unqualified products.
The safety factor of the reservoir area is improved, a large amount of manpower is saved, and the method is embodied as follows:
the frequency of entering an unmanned overhead traveling crane operation area by workers is reduced, the operation process is changed from the original operation of completing the inventory of the area once (about 2 hours) in the next shift, the inventory is purposefully performed according to the system prompt, the average inventory working time is reduced to 40 minutes, so that the inventory personnel in each shift can be combined with the ground personnel who rolls off the line in the pickling process, and one worker can be reduced in each shift.

Claims (5)

1. Step a, an unmanned overhead traveling crane generates an operation work order according to daily work content, and sends the work order number of an operation steel coil to an overhead traveling crane P L C;
b, starting the scanner to work according to a preset strategy at a proper time;
c, the scanner feeds back the scanning result to the crown block P L C, verifies the scanning result with the steel coil number in the work order, and executes different strategies according to different scanning results;
d, verifying the scanning result and the information in the database, and correcting the database according to a verification strategy;
and e, the system carries out color change prompt on the abnormal steel coil on the HMI to remind an operator to carry out coil warehousing on the steel coil.
2. The automatic inventory checking method based on the two-dimension code recognition is characterized in that in the step b, two rotating platforms which can be controlled by P L C are added at the positions of the protective shoes of the lifting appliance, a two-dimension code scanner is installed on the platforms, a height and speed control model of descending of a main hook is made so that the two-dimension code scanner can stay at a proper position, and meanwhile, the working strategy of the two-dimension code scanner is made according to the running state of an unmanned overhead travelling crane.
3. The automatic coil stock method based on two-dimensional code identification as claimed in claim 1, wherein in the step C, a communication mode between a two-dimensional code scanner and a CPU of P L C is established, and the coil number identified by the scanner and the coil number in the work order are verified.
4. The automatic inventory making method based on two-dimensional code identification according to claim 1, wherein in the step d, real-time communication between the crown block and the inventory drawing system is established through a pre-established WIFI network, the scanning result of the crown block P L C is transmitted to the inventory drawing system through the WIFI network in real time, the system judges the current saddle position according to the coordinates of the X axis and the Y axis of the crown block, and the scanning result and the steel coil information in the system on the saddle are verified.
5. The automatic inventory making method based on two-dimension code recognition according to claim 1, characterized in that: and e, marking the abnormal roll identified in the library diagram, prompting an operator to intervene in time on an HMI (human machine interface) of the crown block, modifying message protocols of a secondary grade of the crown block and a PAD (PAD area code) of the disk library, increasing abnormal roll prompting, directly sending the abnormal roll to the PAD when the abnormal roll exists, and marking on an PAD interface.
CN202010104708.7A 2020-02-20 2020-02-20 Automatic inventory making method based on two-dimensional code recognition Pending CN111401802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010104708.7A CN111401802A (en) 2020-02-20 2020-02-20 Automatic inventory making method based on two-dimensional code recognition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010104708.7A CN111401802A (en) 2020-02-20 2020-02-20 Automatic inventory making method based on two-dimensional code recognition

Publications (1)

Publication Number Publication Date
CN111401802A true CN111401802A (en) 2020-07-10

Family

ID=71428429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010104708.7A Pending CN111401802A (en) 2020-02-20 2020-02-20 Automatic inventory making method based on two-dimensional code recognition

Country Status (1)

Country Link
CN (1) CN111401802A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253346A1 (en) * 2005-04-12 2006-11-09 Gomez Michael R Method and apparatus for bar code driven drug product verification with equivalency links
CN207497440U (en) * 2017-10-11 2018-06-15 首钢京唐钢铁联合有限责任公司 A kind of automatic loading device of coil of strip
CN109823968A (en) * 2018-12-21 2019-05-31 佛山市诚德新材料有限公司 A kind of overhead traveling crane reservoir region management system
CN110127500A (en) * 2019-05-14 2019-08-16 江阴鼎力高科起重机械有限公司 Coil of strip is made an inventory of goods in a warehouse crane control system and control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253346A1 (en) * 2005-04-12 2006-11-09 Gomez Michael R Method and apparatus for bar code driven drug product verification with equivalency links
CN207497440U (en) * 2017-10-11 2018-06-15 首钢京唐钢铁联合有限责任公司 A kind of automatic loading device of coil of strip
CN109823968A (en) * 2018-12-21 2019-05-31 佛山市诚德新材料有限公司 A kind of overhead traveling crane reservoir region management system
CN110127500A (en) * 2019-05-14 2019-08-16 江阴鼎力高科起重机械有限公司 Coil of strip is made an inventory of goods in a warehouse crane control system and control method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李晓刚等: "唐钢高强汽车板原料库天车无人化", 《冶金自动化》 *

Similar Documents

Publication Publication Date Title
AU2010246562B2 (en) System for managing operation of industrial vehicles in restricted areas
CN111007808A (en) Workshop production monitoring system and method
CN113771878B (en) Port automatic driving vehicle global route guiding method based on full operation scene
CN105741539A (en) Method and system for automatically judging guard duty real state according to guiding vehicle position
CN111401802A (en) Automatic inventory making method based on two-dimensional code recognition
CN111612316B (en) Operation management system supporting equipment lease application
WO2024021941A1 (en) Unmanned forklift-based stamping plant scheduling system and method
CN111460969A (en) Intelligent industrial information monitoring system based on cloud computing
CN111445179A (en) Three-in-one intelligent park management platform based on Internet of things and optimization algorithm
CN115062906A (en) Intelligent evaluation method and device for production operation risk
CN110127500A (en) Coil of strip is made an inventory of goods in a warehouse crane control system and control method
CN109706564A (en) The dispatching method of spinning workshop connector trolley and the system for using the dispatching method
CN114559921A (en) Method for improving vehicle driving safety and vehicle monitoring system
CN112897346A (en) Crane operation route planning method
CN216311043U (en) Ground wire monitoring and management system
CN110134084A (en) A kind of AGV area operation duration control method, storage device and control system
CN111267907B (en) Station selection method for vehicle-mounted equipment of wireless shunting locomotive signal and monitoring system
CN117314133B (en) Intelligent flow integrating system based on business center
CN112001567B (en) Production management method for factory
CN217443904U (en) Automatic receiving and dispatching system for intelligent shipping IC card
CN114578782B (en) Automatic calibration method and system for integrated controller program
CN114401524A (en) RTK base station monitoring system and method for unmanned mine transportation
CN110642140B (en) Ladle hanging identification method for foundry crane
CN114565458A (en) Client transaction risk early warning method
CN115871751A (en) Fixed marshalling and departure marshalling association method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200710