An automatic loading and unloading method for an unmanned overhead crane based on an SRS system

Through the joint development of the SRS system, WMS system and PLC system, the automatic loading and unloading function of the unmanned overhead crane in the event of an SRS failure has been realized, solving the problem of the unmanned overhead crane being unable to operate automatically in the event of an SRS failure, ensuring the real-time and accuracy of logistics information and improving work efficiency.

CN115611159BActive Publication Date: 2025-10-03TANGSHAN IRON & STEEL GROUP +2
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211098477.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-08
Publication Date
2025-10-03
Estimated Expiration
2042-09-08

AI Technical Summary

Technical Problem

The automatic loading and unloading system of the unmanned overhead crane cannot operate automatically when the SRS system fails, resulting in manual operation, wasting time and the inability to synchronize logistics information, affecting the real-time and accuracy of logistics data.

Method used

The system is jointly developed using the SRS system, the overhead crane process automation WMS system and the overhead crane PLC system. Through virtual addresses, emergency mode switching, real-time monitoring and deviation tolerance setting, it ensures that the warehousing/outbound tasks are automatically completed in the event of an SRS failure, and transmits logistics information through the WIFI network.

Benefits of technology

It improves the automation rate of unmanned overhead crane inbound/outbound tasks, ensures the real-time and accuracy of logistics information, reduces operation time and improves work efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115611159B_ABST
    Figure CN115611159B_ABST
Patent Text Reader

Abstract

The present invention relates to an automatic loading and unloading method for an unmanned overhead crane based on an SRS system, and belongs to the technical field of metallurgical methods. The technical solution of the present invention is: the SRS system, the overhead crane process automation WMS system and the overhead crane PLC system are jointly developed to greatly improve the automation rate of the high-strength automobile plate warehousing / outbound tasks, and the vehicle information and steel coil information are sent to the work order generation system A module of the unmanned overhead crane through the third level. The A module automatically generates an execution work order as needed and sends it to the overhead crane second-level WMS. The overhead crane second-level calculates the steel coil coordinates through the SRS and combines them with its own database, and finally generates an execution command and sends it to the PLC system through the WIFI network, realizing seamless data connection from the MES to the bottom-level PLC. The beneficial effect of the present invention is: it can provide the overhead crane with two virtual coordinates for automatically transporting the steel coils to the vehicle in an emergency, to ensure the completion of the automatic warehousing / outbound tasks, so that the logistics information can be smoothly transmitted to the logistics management system through the network, thereby ensuring the real-time and accuracy of the logistics information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to an automatic loading and unloading method for an unmanned overhead crane based on an SRS system, and belongs to the technical field of metallurgical methods. Background Art

[0002] Unmanned overhead crane control systems are a product of the development of enterprise logistics and the gradual improvement of information technology. Advances in automation technology for unmanned overhead cranes can significantly improve production and transportation efficiency. The SRS system enables unmanned overhead crane systems to automatically perform inbound and outbound operations, saving significant resources and improving the synchronization of enterprise logistics and information flows. Unmanned overhead crane control systems are a product of the development of enterprise logistics and the gradual improvement of information technology. Advances in automation technology for unmanned overhead cranes can significantly improve production and transportation efficiency. This saves significant resources and enhances the digitization of enterprise logistics. With the advancement of science and technology and the needs of production logistics, enterprises are increasingly demanding automated inbound and outbound operations using unmanned overhead crane systems. SRS, short for Shape Recognition System, is a supporting system for unmanned overhead cranes. During the receipt of goods, SRS uses information sharing to identify the location and quantity of steel coils loaded on the vehicle. By scanning the vehicle's parking position and the shape and position of its saddle, the SRS calculates the actual position of the steel coils and saddle using a database model. This information is transmitted to the unmanned overhead crane system via TCP / IP, providing coordinates for automated loading and unloading. The automated loading and unloading system primarily relies on the SRS system to provide its working coordinates. However, several minor bugs still exist in daily use. When these bugs occur, the unmanned overhead crane cannot operate automatically, forcing operators to manually perform loading and unloading operations. This not only wastes time but also prevents the automatic transmission of steel coil logistics information to the logistics management system via the network, rendering the logistics data link ineffective. To ensure the automatic execution of loading and unloading operations and maintain the synchronization of logistics data, the automated loading and unloading system needs to be controlled according to actual site conditions. Summary of the Invention

[0003] The purpose of the present invention is to provide an automatic loading and unloading method for an unmanned overhead crane based on an SRS system. The method adopts the joint development of the SRS system, the overhead crane process automation WMS system and the overhead crane PLC system, which greatly improves the automation rate of the warehousing / outbound tasks of high-strength automotive plates. The vehicle information and steel coil information are sent to the work order generation system A module of the unmanned overhead crane through the third level. The A module automatically generates an execution work order as needed and sends it to the second-level WMS of the overhead crane. The second-level overhead crane calculates the steel coil coordinates through the SRS and combines them with its own database, and finally generates an execution command and sends it to the PLC system through the WIFI network, realizing seamless data connection from the MES to the lowest-level PLC; it can provide the overhead crane with two virtual coordinates for automatically transporting the steel coils to the vehicle in an emergency, to ensure the completion of the automatic warehousing / outbound tasks, so that the logistics information can be smoothly transmitted to the logistics management system through the network, thereby ensuring the real-time and accuracy of the logistics information, and effectively solving the above-mentioned problems existing in the background technology.

[0004] The technical solution of the present invention is: an automatic loading and unloading method of an unmanned overhead crane based on an SRS system, comprising the following steps:

[0005] Step a: Determine the virtual address of the WMS system. Organize all coordinate records obtained during the automatic entry / exit operation of the unmanned overhead crane to generate a database. Divide the coordinate ranges in the X and Y directions respectively. Then use Excel to filter and organize the data units. Start the range filtering with the minimum value in the X and Y directions to obtain the filtering range and the frequency of occurrence of the range. Filter out the range with the highest frequency and set the coordinates of its center point as the virtual address.

[0006] Step b: Determine the control model of the A module of the unmanned overhead crane process automation, and set a byte in the communication message between the A module and the WMS to indicate whether the SRS is normal. This way, when the main control switches to the SRS emergency mode, the WMS will receive this information. Map the virtual address obtained in step a to the program address of the work task issued by the A module, and hide it in the operation screen. When the SRS is operating normally, these two program addresses are unavailable in the task selection interface of the A module.

[0007] Step c: Add a mode switching function to the operation screen. When a problem occurs in the SRS, it will switch to the emergency mode in time. At this time, the program address hidden in the normal state will be displayed on the task selection interface of module A. Module A will set the target position of the unmanned overhead crane inbound / outbound task to the program address defined above;

[0008] Step d: Determine the communication content of the storage location management system. When the SRS system is in an emergency situation, it will analyze the communication message content with the WMS control system in real time, monitor whether the overhead crane has completed unwinding in real time, and if unwinding is completed, synchronize the information to the database in time; modify the storage location information, and record the storage / exit information of the hoisted steel coils;

[0009] Step e: Set up the unmanned overhead crane PLC system and set a byte in the communication message between the PLC and the WMS to indicate whether the SRS is normal. In this way, when the main control switches to the SRS emergency mode, the WMS will feedback the status to the overhead crane PLC system through the TCP / IP protocol; set the allowable deviation value of the overhead crane positioning system;

[0010] Step f: Set the control interlock of the sound and light alarm on the overhead crane. When the overhead crane arrives at the destination area, the sound and light alarm will start to sound, reminding the operator to switch to remote control mode and carry out loading and unloading work; set the automatic rewinding / unwinding interlocking conditions of the overhead crane.

[0011] In step a, the coordinates in the X direction and the Y direction are divided into ranges, with 200 mm as an interval in the X direction and 100 mm as an interval in the Y direction.

[0012] In step e, the allowable deviation value of the overhead crane positioning system is set: when the automatic loading and unloading system is in emergency mode, the WMS sends the target position to the overhead crane, and the deviation between the actual value and the target value of the large vehicle is set to 1000MM, and the deviation between the actual value and the target value of the small vehicle is set to 500MM.

[0013] In step f, the automatic reeling / unreeling interlocking conditions of the overhead crane are set: To ensure safety, when the SRS is in emergency mode, the overhead crane reeling / unreeling control mode is switched from automatic to manual. When the overhead crane arrives at the destination area, the PLC system will automatically issue a pause command to the overhead crane until the overhead crane operator uses the remote control to perform the reeling / unreeling operation.

[0014] The beneficial effects of the present invention are as follows: the SRS system, the overhead crane process automation WMS system and the overhead crane PLC system are jointly developed to greatly improve the automation rate of the warehousing / outbound tasks of high-strength automotive plates; vehicle information and steel coil information are sent to the work order generation system A module of the unmanned overhead crane through the third level; the A module automatically generates an execution work order as needed and sends it to the overhead crane secondary WMS; the overhead crane secondary calculates the steel coil coordinates through the SRS and combines them with its own database, and finally generates an execution command and sends it to the PLC system through the WIFI network, realizing seamless data connection from MES to the lowest level PLC; it can provide the overhead crane with two virtual coordinates for automatically transporting the steel coils to the vehicle in an emergency, to ensure the completion of the automatic warehousing / outbound tasks, so that the logistics information can be smoothly transmitted to the logistics management system through the network, thereby ensuring the real-time and accuracy of the logistics information. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 It is a control flow chart of the present invention;

[0016] Figure 2 This is a hardware diagram of the SRS system of the unmanned overhead crane of the present invention;

[0017] Figure 3 This is a working diagram of the unmanned overhead crane automatic loading and unloading system of the present invention;

[0018] In the figure: laser point 1, bucket 2, scanner 3, horizontal rotation device 4, vertical rotation device 5, laser point remote control 6, SRS control cabinet 7, unmanned overhead crane control system 8. DETAILED DESCRIPTION

[0019] In order to make the purpose, technical solutions and advantages of the invention implementation cases clearer, the technical solutions in the invention implementation cases will be clearly and completely described below in conjunction with the drawings in the implementation cases. Obviously, the implementation cases described are only a small part of the implementation cases of the present invention, rather than all the implementation cases. Based on the implementation cases in the present invention, all other implementation cases obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention.

[0020] An automatic loading and unloading method for an unmanned overhead crane based on an SRS system comprises the following steps:

[0021] Step a: Determine the virtual address of the WMS system. Organize all coordinate records obtained during the automatic entry / exit operation of the unmanned overhead crane to generate a database. Divide the coordinate ranges in the X and Y directions respectively. Then use Excel to filter and organize the data units. Start the range filtering with the minimum value in the X and Y directions to obtain the filtering range and the frequency of occurrence of the range. Filter out the range with the highest frequency and set the coordinates of its center point as the virtual address.

[0022] Step b: Determine the control model of the A module of the unmanned overhead crane process automation, and set a byte in the communication message between the A module and the WMS to indicate whether the SRS is normal. This way, when the main control switches to the SRS emergency mode, the WMS will receive this information. Map the virtual address obtained in step a to the program address of the work task issued by the A module, and hide it in the operation screen. When the SRS is operating normally, these two program addresses are unavailable in the task selection interface of the A module.

[0023] Step c: Add a mode switching function to the operation screen. When a problem occurs in the SRS, it will switch to the emergency mode in time. At this time, the program address hidden in the normal state will be displayed on the task selection interface of module A. Module A will set the target position of the unmanned overhead crane inbound / outbound task to the program address defined above;

[0024] Step d: Determine the communication content of the storage location management system. When the SRS system is in an emergency situation, it will analyze the communication message content with the WMS control system in real time, monitor whether the overhead crane has completed unwinding in real time, and if unwinding is completed, synchronize the information to the database in time; modify the storage location information, and record the storage / exit information of the hoisted steel coils;

[0025] Step e: Set up the unmanned overhead crane PLC system and set a byte in the communication message between the PLC and the WMS to indicate whether the SRS is normal. In this way, when the main control switches to the SRS emergency mode, the WMS will feedback the status to the overhead crane PLC system through the TCP / IP protocol; set the allowable deviation value of the overhead crane positioning system;

[0026] Step f: Set the control interlock of the sound and light alarm on the overhead crane. When the overhead crane arrives at the destination area, the sound and light alarm will start to sound, reminding the operator to switch to remote control mode and carry out loading and unloading work; set the automatic rewinding / unwinding interlocking conditions of the overhead crane.

[0027] In step a, the coordinates in the X direction and the Y direction are divided into ranges, with 200 mm as an interval in the X direction and 100 mm as an interval in the Y direction.

[0028] In step e, the allowable deviation value of the overhead crane positioning system is set: when the automatic loading and unloading system is in emergency mode, the WMS sends the target position to the overhead crane, and the deviation between the actual value and the target value of the large vehicle is set to 1000MM, and the deviation between the actual value and the target value of the small vehicle is set to 500MM.

[0029] In step f, the automatic reeling / unreeling interlocking conditions of the overhead crane are set: To ensure safety, when the SRS is in emergency mode, the overhead crane reeling / unreeling control mode is switched from automatic to manual. When the overhead crane arrives at the destination area, the PLC system will automatically issue a pause command to the overhead crane until the overhead crane operator uses the remote control to perform the reeling / unreeling operation.

[0030] Example:

[0031] With the SRS system as the core, the SRS system, PLC system and WMS system are jointly developed and implemented in the unmanned overhead crane system, such as Figure 1-Figure 3 , including the following steps:

[0032] Step a: Determine the virtual address of the WMS system, organize all coordinate records obtained during the automatic entry / exit operation of the unmanned overhead crane into a database, divide the coordinate ranges in the X and Y directions into 200mm intervals in the X direction and 100mm intervals in the Y direction, then use Excel to filter and organize the data units, starting with the minimum value in the X and Y directions; the main code is as follows:

[0033] void sw03_info()

[0034] {

[0035] if(GM->srs_stat[carpt_id].scan_info != sw03.scan_info)

[0036] {

[0037] GM->srs_stat[carpt_id].scan_info = sw03.scan_info;

[0038] }

[0039] if(GM->srs_stat[carpt_id].h_state != sw03.h_state)

[0040] {

[0041] GM->srs_stat[carpt_id].h_state = sw03.h_state;

[0042] }

[0043] if(GM->srs_stat[carpt_id].v_state != sw03.v_state)

[0044] {

[0045] GM->srs_stat[carpt_id].v_state = sw03.v_state;

[0046] }

[0047] if(GM->srs_stat[carpt_id].laser_state != sw03.laser_state)

[0048] {

[0049] GM->srs_stat[carpt_id].laser_state = sw03.laser_state;

[0050] }

[0051] if(GM->srs_stat[carpt_id].dio_state != sw03.dio_state)

[0052] {

[0053] GM->srs_stat[carpt_id].dio_state = sw03.dio_state;

[0054] }

[0055] }

[0056] short Initialize(void)

[0057] {

[0058] int i;

[0059] if (_IsProcessExist(APPNAME))

[0060] {

[0061] sprintf(logfp, " Process STARTED." );

[0062] _LOG_PRINT(APPNAME, 'E', "Initialize", logfp);

[0063] return (FAILURE);

[0064] }

[0065] setsid();

[0066] chdir( " / " );

[0067] umask( 0 );

[0068] signal(SIGCHLD, SIG_IGN);

[0069] signal(SIGHUP, SIG_IGN);

[0070] signal(SIGABRT, _Exit);

[0071] signal(SIGTERM, _Exit);

[0072] signal(SIGINT, _Exit);

[0073] if (! _shm_mapping())

[0074] {

[0075] sprintf(logfp, "Global(Shared) Memory GM Area Mapping Faile!");

[0076] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0077] return (FAILURE);

[0078] }

[0079] carpt_id = _GetCarPtID(carpt_nm);

[0080] if ( ( Q_MY = _msg_open( CSRSXXXX+carpt_id )) < 0 )

[0081] {

[0082] return( FAILURE );

[0083] }

[0084] sprintf(logfp, "CSRSXXXX MSG_Q Open id[%d]", Q_MY);

[0085] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0086] if ( ( Q_MPOSINFO = _msg_open( MPOSINFO )) < 0 )

[0087] {

[0088] return( FAILURE );

[0089] }

[0090] sprintf(logfp, "MPOSINFO MSG_Q Open id[%d]", Q_MPOSINFO);

[0091] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0092] if ( ( Q_MSENDDIV = _msg_open( MSENDDIV )) < 0 )

[0093] {

[0094] return( FAILURE );

[0095] }

[0096] sprintf(logfp, "MSENDDIV MSG_Q Open id[%d]", Q_MSENDDIV);

[0097] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0098] for(i = 0; i < REAL_CRANE; i++)

[0099] {

[0100] if ( ( Q_CRANE[i] = _msg_open( CRSNDXXX+i )) < 0 )

[0101] {

[0102] sprintf(logfp, "CRSNDXXX Message Queue Faile!" );

[0103] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0104] return( FAILURE );

[0105] }

[0106] sprintf(logfp, "CRSNDXXX MSG_Q Open id[%d]", Q_CRANE[i]);

[0107] _LOG_PRINT(APPNAME, 'I', "Initialize", logfp);

[0108] }

[0109] Step b: Set a byte in the communication message between module A and WMS to indicate whether the SRS is normal. This way, when the master switches to SRS emergency mode, the WMS will receive this information. Map this virtual address to the program address for the work task issued by module A and hide it in the operation screen. When the SRS is operating normally, these two program addresses are unavailable in the task selection interface of module A. The main code is as follows:

[0110] int main(int argc, char **argv)

[0111] {

[0112] struct sockaddr peer;

[0113] socklen_t size;

[0114] int lsock, csock, port;

[0115] char temp

[10] ;

[0116] memset(temp, 0x00, sizeof(temp));

[0117] memcpy(temp, argv[0], 8);

[0118] sprintf(carpt_nm, "%.4s", &temp[4]);

[0119] sprintf(APPNAME, "CSRS%.4s", carpt_nm );

[0120] sprintf(logfp, "%.8s PROCESS START!!!", APPNAME);

[0121] _LOG_PRINT(APPNAME, 'I', "main", logfp);

[0122] if (Initialize() == FAILURE)

[0123] {

[0124] sprintf(logfp, "Process Initialize FAILE");

[0125] _LOG_PRINT(APPNAME, 'E', "main", logfp);

[0126] exit(0);

[0127] }

[0128] size = sizeof(peer);

[0129] while (GM->process[CSRSXXXX+carpt_id].flag != 'D')

[0130] {

[0131] if(_IsTimerSet(qreadT, 60))

[0132] {

[0133] time(&qreadT);

[0134] _msg_reading(Q_MY);

[0135] }

[0136] port = GM->basic.set_srs[carpt_id].srs_rport;

[0137] if ((lsock = _tcpS_open(NULL, port)) < 0)

[0138] {

[0139] sprintf(logfp, " Socket Open Error([%d][%s])",

[0140] errno, strerror(errno));

[0141] _LOG_PRINT(APPNAME, 'E', "main", logfp);

[0142] _tcp_close( lsock );

[0143] _Wait(3.0);

[0144] continue;

[0145] }

[0146] sprintf(logfp, " Socket Open Success !!!(lsock[%d])",lsock);

[0147] _LOG_PRINT(APPNAME, 'I', "main", logfp);

[0148] if ((csock = accept( lsock, &peer, &size ) ) < 0 )

[0149] {

[0150] sprintf(logfp, " Socket Accept Error([%d][%s])",

[0151] errno, strerror(errno));

[0152] _LOG_PRINT(APPNAME, 'E', "main", logfp);

[0153] _tcp_close( lsock );

[0154] _Wait(2.0);

[0155] continue;

[0156] }

[0157] _tcp_close( lsock );

[0158] sprintf(logfp, " Socket Accept Success !!!(csock[%d])",csock);

[0159] _LOG_PRINT(APPNAME, 'I', "main", logfp);

[0160] if (CheckIP(peer) < 0)

[0161] {

[0162] _tcp_close( csock );

[0163] _Wait(2.0);

[0164] continue;

[0165] }

[0166] SubLoop(csock);

[0167] time(&qreadT);

[0168] _tcp_close(csock);

[0169] _Wait(2.0);

[0170] }

[0171] _ProcessDown( CSRSXXXX+carpt_id );

[0172] return (0);

[0173] }

[0174] Step c: When a problem occurs in the SRS, it switches to emergency mode in time. At this time, the program address that is hidden in the normal state will be displayed in the task selection interface of module A. Module A will set the target position of the unmanned overhead crane inbound / outbound task to the program address defined above. The main code is as follows:

[0175] sprintf(logfp, "SYSTEM IP SUCCESS:[%s]", hostip);

[0176] _LOG_PRINT(APPNAME, 'I', "CheckIP", logfp);

[0177] return(0);

[0178] }

[0179] void SubLoop(int sock)

[0180] {

[0181] int rbytes, sndp, tc_size;

[0182] short sent, rlen;

[0183] char data

[2048] ;

[0184] char rmsg

[1024] ;

[0185] char smsg

[100] ;

[0186] _LOG_PRINT(APPNAME, 'I', "SubLoop", logfp);

[0187] while (GM->process[CSRSXXXX+carpt_id].flag != 'D')

[0188] {

[0189] memset(data, 0x00, sizeof(data));

[0190] memset(rmsg, 0x00, sizeof(rmsg));

[0191] if(memcmp(&data

[60] , "ACK", 3) != 0 && rlen > 10)

[0192] {

[0193] sprintf(smsg, "%.34s0063%.22sACK",data, &data

[38] );

[0194] if ((sent = SendMessage(sock, (UCHAR *)smsg, 63)) ==FAILURE)

[0195] {

[0196] sprintf(logfp, "ACK SEND ERROR");

[0197] _LOG_PRINT(APPNAME, 'W', "SubLoop", logfp);

[0198] break;

[0199] }

[0200] ReceiveMsg(sock, (UCHAR *)&data, rlen);

[0201] }

[0202] / *

[0203] if(_IsTimerSet( ws03T, 1))

[0204] {

[0205] if(! ws03_send_chk(sock))

[0206] time( &ws03T );

[0207] }

[0208] * /

[0209] ws03_send_chk(sock);

[0210] _Wait( 0.1 );

[0211] }

[0212] }

[0213] short ReceiveMsg(int sock, UCHAR *msg, short len)

[0214] {

[0215] int rev_size;

[0216] char temp

[10] ;

[0217] char temp2

[10] ;

[0218] int re_siljuk;

[0219] char data2

[2048] ;

[0220] int rlen2;

[0221] int i, coilcnt;

[0222] MYSQL_RES *res_set;

[0223] MYSQL_ROW row;

[0224] MYSQL *dbcon;

[0225] rev_size = _Atoi(msg+34, 4);

[0226] if (rev_size != len)

[0227] {

[0228] sprintf(logfp,"RECEIVE DATA SIZE ERROR [%d][%d]", rev_size,len);

[0229] _LOG_PRINT (APPNAME, 'I', "ReceiveMsg", logfp);

[0230] return (FAILURE);

[0231] }

[0232] sprintf(logfp,"ReceiveMsg[%d][%s]", len, msg);

[0233] _LOG_PRINT (APPNAME, 'I', "ReceiveMsg", logfp);

[0234] if (memcmp(msg, "SW01", 4) == 0)

[0235] {

[0236] memset(&sw01, 0x20, sizeof(sw01));

[0237] memcpy(&sw01, msg, sizeof(sw01));

[0238] sw01_info();

[0239] measure_car_send();

[0240] coilcnt = _Atoi(sw01.total_qty, 2);

[0241] dbcon = (MYSQL*)_DBGetConnect(MRECVDIV);

[0242] if( dbcon == NULL )

[0243] return;

[0244] for(i = 0; i<coilcnt; i++)

[0245] {

[0246] memset(queryTemp, 0x00, sizeof(queryTemp));

[0247] memset(query, 0x00, sizeof(query));

[0248] short SendMessage(int sock, UCHAR *msg, short len)

[0249] {

[0250] short sent;

[0251] char clear_buf[BUFSIZE];

[0252] if ( ( sent = _tcp_snd( sock, (char *)msg, len, -1 ) ) < 0 )

[0253] {

[0254] sprintf(logfp, "Message SEND FAIL[%d] !!\n", sent);

[0255] _LOG_PRINT(APPNAME, 'I', "SendMessage", logfp);

[0256] return( FAILURE );

[0257] }

[0258] sprintf(logfp, "Message SEND[%s][%d] sockNo[%d]", msg, sent,sock);

[0259] _LOG_PRINT(APPNAME, 'I', "SubLoop", logfp);

[0260] return( SUCCESS );

[0261] Step d: When the SRS system is in an emergency, it analyzes the communication message content with the WMS control system in real time, and monitors whether the overhead crane has completed unwinding. If unwinding is completed, the information should be synchronized to the database in a timely manner. The warehouse information should be modified and the storage / exit information of the hoisted steel coils should be recorded. The main code is as follows:

[0262] void sw01_info()

[0263] {

[0264] int i, j, car_id, coil_cnt=0;

[0265] int dx_first=0, dx_last=0;

[0266] int coil_first = 0, coil_last = 0;;

[0267] int car_before=0, car_after=0, car_dist;

[0268] int coil_dx_calc

[20] , coil_dy_calc

[20] ;

[0269] char temp

[10] ;

[0270] sprintf(temp, "%.4s", sw01.head.car_point);

[0271] car_id = _GetCarPtID(temp);

[0272] sprintf(logfp, " carpt[%.4s] ID[%d] carnum[%.12s] qty[%.2s] ",sw01.head.car_point, sw01.head.car_num, sw01.total_qty);

[0273] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0274] for(i=0; i<15; i++)

[0275] {

[0276] sprintf(temp, "%02d", _Atoi(sw01.info[i].index_no, 2));

[0277] sprintf(logfp, "index[%.2s]",temp);

[0278] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0279] }

[0280] if(memcmp(GM->carreach[car_id].carpoint, sw01.head.car_point, 4)!= 0)

[0281] {

[0282] sprintf(logfp, "VEHICLE POINT ERROR");

[0283] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0284] return;

[0285] }

[0286] if(memcmp(GM->carreach[car_id].carno, sw01.head.car_num, 12) !=0)

[0287] {

[0288] sprintf(logfp, "VEHICLE NUMBER ERROR");

[0289] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0290] return;

[0291] }

[0292] GM->carreach[car_id].scan_gbn = 'Y';

[0293] for(i=0; i<15; i++)

[0294] {

[0295] if(sw01.info[i].coil_no[0] > 0x20)

[0296] {

[0297] for(j=0; j<30; j++)

[0298] {

[0299] if(GM->carreach[car_id].coil[j].coilno[0] > 0x20)

[0300] {

[0301] sprintf(logfp, "COIL CHECK I[%d], J[%d] ReachCoil[%.15s] SW01 INFO[%.15s]",i, j,

[0302] GM->carreach[car_id].coil[j].coilno, sw01.info[i].coil_no);

[0303] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0304] {

[0305] sprintf(logfp, "VEHICLE COIL INFORMATION ERROR");

[0306] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0307] srs_err_code = 53;

[0308] }

[0309] coil_cnt = _Atoi(sw01.total_qty, 2);

[0310] for(i=0; i < coil_cnt-1; i++)

[0311] {

[0312] car_before = _Atoi(sw01.info[i].dy, 5);

[0313] car_after = _Atoi(sw01.info[i+1].dy, 5);

[0314] sprintf(logfp, "Before[%d] after[%d] i[%d] coil1=[%d] coil2=[%d]", car_before, car_after, i,

[0315] _Atoi(GM->carreach[car_id].coil[i].coilodia,4), _Atoi(GM->carreach[car_id].coil[i+1].coilodia, 4));

[0316] _LOG_PRINT(APPNAME, 'I', "sw01_info", logfp);

[0317] if(car_before > car_after)

[0318] {

[0319] car_dist = car_before - (car_after + _Atoi(GM->carreach[car_id].coil[i].coilodia, 4) / 2 + _Atoi(GM->carreach[car_id].coil[i+1].coilodia, 4) / 2 );

[0320] }

[0321] else

[0322] {

[0323] car_dist = car_after - (car_before + _Atoi(GM->carreach[car_id].coil[i].coilodia, 4) / 2 + _Atoi(GM->carreach[car_id].coil[i+1].coilodia, 4) / 2 );

[0324] }

[0325] Step e: Set the byte indicating whether the SRS is normal in the communication message between the PLC and the WMS. This way, when the master control switches to SRS emergency mode, the WMS will report this status to the overhead crane PLC system via the TCP / IP protocol. Set the allowable deviation value of the overhead crane positioning system: When the automatic loading and unloading system is in emergency mode, the WMS sends the target position to the overhead crane. The allowable deviation between the actual value and the target value of the large vehicle is set to 1000mm, and the deviation between the actual value and the target value of the small vehicle is set to 500mm. The main code is as follows:

[0326] void car_arrive()

[0327] {

[0328] IF_CWMZZC10 zzc10;

[0329] char temp

[100] ;

[0330] memset(&zzc10, 0x20, sizeof(zzc10));

[0331] _Make_MESHead(temp, "CWMZZC10", GM->sys.facopcd, sizeof(zzc10));

[0332] memcpy(&zzc10, temp, 50);

[0333] memcpy(zzc10.carpoint, sw04.head.car_point, 4);

[0334] memcpy(zzc10.eqpno, sw04.head.car_num, 12);

[0335] sprintf(logfp, "Car Arrive infomation request to MES [%.8s][%.12s]", zzc10.carpoint, zzc10.eqpno);

[0336] _LOG_PRINT( APPNAME, 'I', "requ", logfp );

[0337] (void)_msg_snd(Q_MSENDDIV, CSRSXXXX+carpt_id, (UCHAR *)&zzc10,sizeof(zzc10));

[0338] }

[0339] if(old_cr_stop != GM->crane[crid].stat.plc_stop_reason)

[0340] {

[0341] sprintf(logfp, "CRANE old_cr_stop[%c] crane ID[%d]WORKSTAT[%c]", old_cr_stop, crid,

[0342] GM->crane[crid].stat.plc_stop_reason);

[0343] _LOG_PRINT( APPNAME, 'I', "ws03_send_chk", logfp );

[0344] old_cr_stop = GM->crane[crid].stat.plc_stop_reason;

[0345] car_info_send = 1;

[0346] }

[0347] if(GM->crane[crid].work_stat == 'G' && car_info_send != 1)

[0348] {

[0349] set_carjob = 0;

[0350] crid = -1;

[0351] sprintf(logfp, "WORK INITIAL CRANE ID[%d] set_carjob[%d]", crid, set_carjob);

[0352] _LOG_PRINT( APPNAME, 'I', "ws03_send_chk", logfp );

[0353] }

[0354] }

[0355] }

[0356] int ws01_send(int ws01_sock)

[0357] {

[0358] IF_WS01 ws01;

[0359] char temp

[20] , curr_date

[20] ;

[0360] char ws01buff

[1000] ;

[0361] int carpt, sent, i;

[0362] if ((carpt = _GetCarPtID(sw02.head.car_point)) < 0)

[0363] {

[0364] sprintf(logfp, "[%.4s]VEHICLE POINT GET ERROR",sw02.head.car_point);

[0365] _LOG_PRINT(APPNAME, 'E', "XMWZZA02", logfp);

[0366] return;

[0367] }

[0368] memset(&ws01, 0x20, sizeof(ws01));

[0369] sprintf(temp, "%04d", sizeof(ws01));

[0370] memcpy(ws01.head.tccd, "WS01", 4);

[0371] _GetDateTime(0, curr_date);

[0372] memcpy(ws01.head.date, curr_date, 14);

[0373] if(GM->carreach[carpt].carpoint[0] != ' ')

[0374] {

[0375] memcpy(ws01.head.car_point, GM->carreach[carpt].carpoint, 4);

[0376] memcpy(ws01.head.car_num, GM->carreach[carpt].carno, 12);

[0377] memcpy(ws01.head.len, temp, 4);

[0378] if( GM->carreach[carpt].heapgbn == '0')

[0379] {

[0380] ws01.req_gbn = '2';

[0381] }

[0382] else if(GM->carreach[carpt].heapgbn == '1')

[0383] {

[0384] ws01.req_gbn = '1';

[0385] }

[0386] Step f: Set the control interlock for the audible and visual alarms on the overhead crane. When the crane reaches the destination area, the audible and visual alarms will sound, reminding the operator to switch to remote control mode and load and unload the vehicle. Set the automatic rewinding / unwinding interlock conditions for the overhead crane: To ensure safety, when the SRS is in emergency mode, the overhead crane rewinding / unwinding control mode switches from automatic to manual. When the crane reaches the destination area, the PLC system will automatically issue a pause command to the overhead crane until the crane operator uses the remote control to retrieve / unwind the vehicle. The main code is as follows:

[0387] void measure_car_send()

[0388] {

[0389] IF_CWMZZC11 zzc11;

[0390] int i=0;

[0391] char temp

[200] ;

[0392] char zzc11buff

[2000] ;

[0393] memset(&zzc11, 0x20, sizeof(zzc11));

[0394] _Make_MESHead(temp, "CWMZZC11", GM->sys.facopcd, sizeof(zzc11));

[0395] memcpy(&zzc11, temp, 60);

[0396] sprintf(temp, "%.4s ", sw01.head.car_point);

[0397] memcpy(zzc11.carpoint, temp, 8);

[0398] memcpy(zzc11.eqpno, sw01.head.car_num, 12);

[0399] for(i=0; i<15; i++)

[0400] {

[0401] memcpy(zzc11.c[i].coil_no, sw01.info[i].coil_no, 15);

[0402] if(memcmp(sw01.info[i].index_no, " ", 2) == 0)

[0403] {

[0404] sprintf(temp, " ");

[0405] }

[0406] else

[0407] {

[0408] sprintf(temp, "%02d", _Atoi(sw01.info[i].index_no, 2));

[0409] }

[0410] memcpy(zzc11.c[i].idx_no, temp, 2);

[0411] }

[0412] _Nulltospace((char *)&zzc11, sizeof(zzc11));

[0413] sprintf(zzc11buff, "%s ", &zzc11);

[0414] sprintf(logfp, "VEHICLE MEASUREMENT INFORMATION:[%s]",zzc11buff);

[0415] _LOG_PRINT(APPNAME, 'I', "CWMZZC11", logfp);

[0416] (void)_msg_snd(Q_MSENDDIV, CSRSXXXX+carpt_id, (UCHAR *)&zzc11,sizeof(zzc11));

[0417] }

[0418] int car_coil_chk(int car_pt)

[0419] {

[0420] int i, remain_coil = 0;

[0421] for(i=0; i<15; i++)

[0422] {

[0423] if(GM->carreach[car_pt].coil[i].coilno[0] != ' ')

[0424] {

[0425] if(GM->carreach[car_pt].coil[i].exist == '1')

[0426] {

[0427] remain_coil++;

[0428] }

[0429] }

[0430] }

[0431] return remain_coil;

[0432] }

[0433] sprintf(temp, "%.2d", _Atoi(GM->carreach[carpt].heapcnt, 3));

[0434] memcpy(ws01.total_qty, temp, 2);

[0435] sprintf(temp, "%.2d", _Atoi(GM->carreach[carpt].remain_cnt,3));

[0436] memcpy(ws01.remain_qty, temp, 2);

[0437] ws01.scan_info = GM->carreach[carpt].scan_gbn;

[0438] for(i=0; i<15; i++)

[0439] {

[0440] memcpy(ws01.info[i].coil_no, GM->carreach[carpt].coil[i].coilno, 15);

[0441] memcpy(ws01.info[i].index_no, &GM->carreach[carpt].coil[i].addr[5], 2);

[0442] memcpy(ws01.info[i].width, GM->carreach[carpt].coil[i].coilwth, 5);

[0443] memcpy(ws01.info[i].weight, GM->carreach[carpt].coil[i].coilwgt, 5);

[0444] memcpy(ws01.info[i].odia, GM->carreach[carpt].coil[i].coilodia, 4);

[0445] if(GM->carreach[carpt].coil[i].exist == '0' )

[0446] {

[0447] ws01.info[i].status = '4';

[0448] }

[0449] else if(GM->carreach[carpt].coil[i].exist == '1' )

[0450] {

[0451] ws01.info[i].status = '*';

[0452] }

[0453] memcpy(ws01.info[i].dx, GM->carreach[carpt].coil[i].srs_info.dx, 6);

[0454] memcpy(ws01.info[i].dy, GM->carreach[carpt].coil[i].srs_info.dy, 5);

[0455] memcpy(ws01.info[i].dz, GM->carreach[carpt].coil[i].srs_info.dz, 5);

[0456] ws01.info[i].coil_way = GM->carreach[carpt].coil[i].srs_info.coil_way;

[0457] }

[0458] sprintf(ws01buff, "%s ", &ws01);

[0459] sprintf(logfp, "VEHICLE INFORMATION:[%s]", ws01buff);

[0460] _LOG_PRINT(APPNAME, 'I', "ws01_send", logfp);

[0461] old_jobstat = ' ';

[0462] if ((sent = SendMessage(ws01_sock, (UCHAR *)&ws01, sizeof(ws01))) == FAILURE)

[0463] {

[0464] sprintf(logfp, "WS01 DATA SEND ERROR");

[0465] _LOG_PRINT(APPNAME, 'E', "ws01_send", logfp);

[0466] The present invention utilizes a WMS system, an A module system, and a PLC system to build an emergency platform for unmanned overhead crane automatic loading and unloading. This platform ensures the automated loading and unloading of steel coils when the SRS system fails to provide working coordinates to the WMS system. By configuring the work order issuance interface of the automatic loading and unloading system in the A module, the virtual program address is hidden when the SRS system is operating normally. However, when the SRS system fails to provide working coordinates to the WMS system, the A module automatically switches to emergency mode upon receiving status information, and the virtual program address is displayed on the HMI screen. The design of emergency mode control within the PLC system reduces actual waste caused by overhead crane positioning and improves work efficiency. Furthermore, by modifying the loading / unloading interlocking conditions, the safety of the overhead crane main hook during emergency mode is ensured. Through this combined control, if the SRS system fails, the automatic loading and unloading system can provide the overhead crane with two virtual coordinates for automatically transporting steel coils to the vehicle, ensuring the completion of automated loading and unloading tasks. This allows for smooth network transmission of logistics information to the logistics management system, ensuring real-time and accurate logistics information.

Claims

1. An automatic loading and unloading method for an unmanned overhead crane based on an SRS system, wherein the SRS is an unmanned overhead crane shape recognition system, characterized in that The following steps are involved: Step a: Determine the virtual address of the WMS system, organize all coordinate records obtained during the automatic entry / exit operation of the unmanned overhead crane into a database, divide the coordinate ranges in the X and Y directions respectively, and then use Excel to filter and organize the data units. Start the range filtering with the minimum value in the X and Y directions to obtain the filtering range and the frequency of occurrence of the obtained filtering range; Filter out the range with the highest frequency, and set the coordinates of its center point as the virtual address; Step b: Determine the control model of the A module of the process automation of the unmanned overhead crane, and set a byte indicating whether the SRS is normal in the communication message between the A module and the WMS. In this way, when the main control switches to the SRS emergency mode, the WMS will receive the SRS emergency mode information; map the virtual address obtained in step a to the program address of the work task issued by the A module, and hide the program address mapped to the work task issued by the A module in the operation screen. When the SRS is operating normally, the virtual address obtained in step a and the program address mapped to the work task issued by the A module are unavailable in the task selection interface of the A module; Step c: Add a mode switching function to the operation screen. When a problem occurs in the SRS, it will switch to the emergency mode in time. At this time, the program address hidden in the normal state will be displayed on the task selection interface of module A. Module A will set the target position of the unmanned overhead crane inbound / outbound task to the program address defined above; Step d: Determine the communication content of the storage location management system. When the SRS system is in an emergency situation, it will analyze the communication message content with the WMS control system in real time, monitor whether the overhead crane has completed unwinding in real time, and if unwinding is completed, synchronize the unwinding completion information to the database in time; modify the storage location information, and record the storage / exit information of the hoisted steel coils; Step e: Set up the unmanned overhead crane PLC system and set a byte in the communication message between the PLC and the WMS to indicate whether the SRS is normal. In this way, when the main control switches to the SRS emergency mode, the WMS will feedback the SRS emergency mode to the overhead crane PLC system through the TCP / IP protocol; set the allowable deviation value of the overhead crane positioning system; Step f: Set the control interlock of the sound and light alarm on the overhead crane. When the overhead crane arrives at the destination area, the sound and light alarm will start to sound, reminding the operator to switch to the remote control mode and carry out loading and unloading work; Set the automatic rewinding / unrewinding interlocking conditions of the overhead crane.

2. The automatic loading and unloading method of an unmanned overhead crane based on an SRS system according to claim 1, characterized in that: In step a, the coordinates in the X direction and the Y direction are divided into ranges, with 200 mm as an interval in the X direction and 100 mm as an interval in the Y direction.

3. The automatic loading and unloading method of an unmanned overhead crane based on an SRS system according to claim 1, characterized in that: In step e, the allowable deviation value of the overhead crane positioning system is set: when the automatic loading and unloading system is in emergency mode, the WMS sends the target position to the overhead crane, and the deviation between the actual value and the target value of the large vehicle is set to 1000MM, and the deviation between the actual value and the target value of the small vehicle is set to 500MM.

4. The automatic loading and unloading method of an unmanned overhead crane based on an SRS system according to claim 1, characterized in that: In step f, the automatic reeling / unreeling interlocking conditions of the overhead crane are set: To ensure safety, when the SRS is in emergency mode, the reeling / unreeling control mode of the overhead crane is switched from automatic to manual. When the overhead crane arrives at the destination area, the PLC system will automatically issue a pause command to the overhead crane until the operator uses the remote control to perform the reeling / unreeling operation.

Citation Information

Patent Citations

  • Crown block logistics informatization control system

    CN102419579A

  • Steel plant finished product storage and distribution automatic control method

    CN105205629A