The present disclosure relates to Internet of Things (IoT) systems, and more specifically, to detecting rearrangements of manufacturing machines on a factory floor deploying IoT solutions.
When applying IoT solutions to the manufacturing field, an information technology (IT) server collects the data that represents behavior of manufacturing machines on the field via Programmable Logic Controller (PLC).
However, the IT server will retrieve the data for different manufacturing machines via the same PLC when a KAIZEN event occurs. During a KAIZEN event, the location and order of deployment of manufacturing machines can be changed, which would also cause a change to the connections between PLCs and manufacturing machines. Such events are referred to herein as ‘rearrangement’. Further, the IoT system configured to manage the manufacturing field and the IT servers are located on isolated networks that are siloed from each other, so administrators of the IT server cannot obtain the rearrangement data. Thus, there is a need to detect when rearrangements occur from the IT server side.
In a related art implementation, there are systems and methods for discovery and mapping of a network topology which involves network topology discovery, classification on network devices, identification of silent devices, fingerprinting and mapping the network map including PLCs.
Aspects of the present disclosure can include a method for detecting changes in a manufacturing field system that involves a first network processing data regarding one or more manufacturing machines, and a second network managing a plurality of programmable logic controllers (PLCs) connected to the one or more manufacturing machines, the method including monitoring the plurality of PLCs through the second network, each of the PLCs associated with the one or more manufacturing machines; and for the monitoring indicating a change in the second network, the change involving one or more of a different manufacturing machine associated with one of the plurality of PLCs, or a change in an order of execution of the one or more manufacturing machines for one of the plurality of PLCs, updating a hierarchy of the manufacturing field system based on the change.
Aspects of the present disclosure can include means for detecting changes in a manufacturing field system that involves a first network processing data regarding one or more manufacturing machines, and a second network managing a plurality of programmable logic controllers (PLCs) connected to the one or more manufacturing machines, the means including means for monitoring the plurality of PLCs through the second network, each of the PLCs associated with the one or more manufacturing machines; and for the monitoring indicating a change in the second network, the change involving one or more of a different manufacturing machine associated with one of the plurality of PLCs, or a change in an order of execution of the one or more manufacturing machines for one of the plurality of PLCs, means for updating a hierarchy of the manufacturing field system based on the change.
Aspects of the present disclosure can include a computer program for detecting changes in a manufacturing field system that involves a first network processing data regarding one or more manufacturing machines, and a second network managing a plurality of programmable logic controllers (PLCs) connected to the one or more manufacturing machines, the computer program including instructions for monitoring the plurality of PLCs through the second network, each of the PLCs associated with the one or more manufacturing machines; and for the monitoring indicating a change in the second network, the change involving one or more of a different manufacturing machine associated with one of the plurality of PLCs, or a change in an order of execution of the one or more manufacturing machines for one of the plurality of PLCs, updating a hierarchy of the manufacturing field system based on the change. The instructions can be stored on a non-transitory computer readable medium and configured to be executed by one or more processors.
Aspects of the present disclosure involve an apparatus configured for detecting changes in a manufacturing field system including a first network processing data regarding one or more manufacturing machines, and a second network managing a plurality of programmable logic controllers (PLCs) connected to the one or more manufacturing machines, the apparatus communicatively coupled to the second network, the apparatus involving a processor, configured to monitor the plurality of PLCs through the second network, each of the PLCs associated with the one or more manufacturing machines; and for the monitoring indicating a change in the second network, the change involving one or more of a different manufacturing machine associated with one of the plurality of PLCs, or a change in an order of execution of the one or more manufacturing machines for one of the plurality of PLCs, update a hierarchy of the manufacturing field system based on the change.
The following detailed description provides further details of the figures and example implementations of the present application. Reference numerals and descriptions of redundant elements between figures are omitted for clarity. Terms used throughout the description are provided as examples and are not intended to be limiting. For example, the use of the term “automatic” may involve fully automatic or semi-automatic implementations involving user or administrator control over certain aspects of the implementation, depending on the desired implementation of one of ordinary skill in the art practicing implementations of the present application. Selection can be conducted by a user through a user interface or other input means, or can be implemented through a desired algorithm. Example implementations as described herein can be utilized either singularly or in combination and the functionality of the example implementations can be implemented through any means according to the desired implementations.
Example implementations of a rearrangement detection method and system are described as follows.
Control level network 102 can be constructed by Ethernet and Industrial Ethernet protocols that utilize special features to facilitate industrial implementations that require real-time, high availability data flow, unlike the IT protocol. Examples of specifications for control level network 102 can include CC-Link, PROFINET, EtherNet/IP, EtherCAT, and so on in accordance with the desired implementation. In the control network 102, topology such as Star, Ring, Line, and so on are used, unlike a normal IT environment. The networking device 114 provides data to the rearrangement detect server 130 and to Higher PLC 112 based on data processing conducted by the supervisory control and data acquisition (SCADA) and receives data from PLCs 116-1, 116-2.
Field level network 103 can involve a Serial Cable such as RS-485 or Ethernet and Industrial Ethernet protocol. In example implementations, the Industrial Ethernet protocol for the field level network 103 typically guarantees real-time communication more strictly. Examples of specifications for field level network 103 can involve CC-Link, PROFIBUS, DeviceNet, and so on in accordance with the desired implementation. In example implementations, a line topology is used in field level network 103 to avoid signal influence. Field level network 103 involves the assets such as manufacturing machine 117-1, 117-2, and their corresponding PLC 116-1, 116-2. IT Server 120 can involve a metrics retriever 121 which retrieves productivity data from MES 110 in data level network 101 and PLCs 116 in control level network 102, and store that data to data lake 122. Then, the solution application 123 retrieves and edits the data lake 122 to generate key performance indicators (KPIs) that is analyzed by the manufacturing manager 124.
Retriever configurator 150 can involve an asset repository 152 which stores information of the assets in the manufacturing field system 100. The field operator 153 or rearrangement detect server 130 issues instructions to the asset manager 151, whereupon the asset manager 151 edits information stored in asset repository 152. That information is utilized for generating KPIs, because that information indicates what data from PLC 116-1, 116-2 corresponds to which behavior of manufacturing machine 117-1, 117-2. The data from PLC 116-1, 116-2 includes a data set such as PLC ID, metrics and value (e.g. PLC ID#1, LotCount is 1000).
In the system as illustrated in
There is also a second network involving the control level network 102 managed by networking device 114, that manages the underlying PLCs 116-1, 116-2. In implementations of the manufacturing field system 100, the first network is isolated from the second network, s the manufacturing field system is isolated from the outside world for security reasons and inaccessible other than by a managing server such as IT server 120. Thus, the remote field operator 133 cannot determine when changes are made to the field level network 103 if manufacturing machines 117-1, 117-2 are moved to different locations and managed by different PLCs.
To address the above problem, example implementations involve a rearrangement detect server 130 that is connected to the networking device 114 so as to be communicatively coupled to the second network. The rearrangement detect server 130 involves a rearrangement detector 131 that detects the rearrangement of assets in the manufacturing field system 100 based on the data monitored by behavior monitor 132. Behavior monitor 132 involves functions such as PLC status monitor 133, Deep Packet Inspection (DPI) monitor 134, and Network Monitor 135. Data from the behavior monitor 132 can be managed by monitoring repositories 141, which can involve the PLC status repository 142, the DPI monitoring result repository 143, and the network monitoring result repository 144. Rearrangement detect server 130 also maintains an arrangement pattern repository 140 for detecting arrangement patterns. By analyzing network data, PLC status, and DPI from networking device 114, example implementations described herein can thereby device when a change in the field level network 103 has occurred without needing direct access to PLC 116-1, PLC 116-2, or manufacturing machine 117-1, 117-2. The rearrangement detect server 130 can generate messages to the retriever configurator 150 to provide updates as to the hierarchy and underlying structure of the manufacturing field system 100, while maintaining the isolation between the first network and the second network so as to protect access to the PLC 116-1, 116-2, and manufacturing machines 117-1, 117-2 from unauthorized devices.
The rearrangement detector 131 executes a process 210 involving retrieving data from the repository 141 in a polling manner at 211, retrieving data from the arrangement pattern repository 140 at 212, comparing the difference between the data retrieved from the repository 141 and the arrangement pattern 140 at 213, sending a notification message 215 as applicable at 214, and update the repository 216. Through the comparison of the data retrieved from the repository 141 and the arrangement pattern repository 140, the rearrangement detector 131 can thereby determine changes in configurations to the underlying assets of the manufacturing field system 100.
The asset manager 151 receives a notification message 215 and executes a process 220 to update the asset repository 152 at 221 based on the notification message 215. Through the notification messages 215, the asset manager 151 can thereby be informed of the underlying arrangement of the assets in the manufacturing field system 100 even if the asset manager 151 is on a network that is isolated from the network of the manufacturing field system 100.
In the example, behavior monitor 132 involves the three types of monitors 133, 134, 135 as described in
At 203-1-2, the current column in the PLC status repository 142 is updated to “No”. At 203-1-3, the processed data is inserted into the PLC status repository 142, and the current column is set to yes to indicate the update. As illustrated in
By using the management protocol, PLC Status Monitor 133 can get the Machine order 146 that indicates the order within a PLC. Machine order 406 is presented in the data structure of the response of management protocol or specific ID (e.g. Network ID, Station ID) or so on in accordance with a desired implementation.
At 202-2-2, the DPI monitor 134 processes the features from the separated DPI stream for all separated DPI streams. The processing of the features can be conducted as follows: for each of the separated DPI streams, apply filter “udp contains POSITION” apply filter “udp contains CONTROL” apply filter “udp contains SLOTON”. At 202-2-3, the DPI Monitor 134 processes periodic sequences. At 203-2-1, a determination is made as to whether the processed data is data that is unique to the entries in the DPI monitoring result repository 143. If not (N) then the flow ends, otherwise (Y) the current column is updated to No in the DPI monitoring result repository 143 to indicate that the entries do not reflect the present architecture of the manufacturing field system 100. At 203-2-3, the processed data is inserted into the DPI monitoring result repository 143 with the current column field set to Yes to indicate that the entries reflect the present architecture of the manufacturing field system 100.
In example implementations, DPI Monitor 134 uses a mirroring port on networking device 114 when DPI Monitor 134 captures packets in order to avoid affecting the control level network 102. The DPI monitor 134 takes advantage of how higher PLC 112 and PLC 116-1, 116-2 and manufacturing machines 117-1, 117-2 communicate periodically because manufacturing machines may move or change routines periodically to make products stably.
In this example, one DPI status involves a plurality of sequences. One sequence involves a plurality of transactions. By analyzing transactions, DPI Monitor 134 can recognize not only the behavior of each manufacturing machine 117-1, 117-2 under PLC 116-1. 116-2 but also the order of each manufacturing machine 117-1, 117-2 under PLC 116-1, 116-2.
In this example, network monitor 135 uses SNMP protocol to obtain data from networking device 114, as snmp is a common protocol to which the networking device 114 can provide the number of packets and bits in response. However, other protocols may be utilized in accordance with the desired implementation.
With data in network monitoring result repository 144, network monitor 135 can recognize behavior of manufacturing machines 117-1, 117-2 under the PLC 116-1, 116-2, but may not recognize the order of manufacturing machines 117-1, 117-2 under the PLC 116-1, 116-2.
At 211, the rearrangement detector 131 retrieves all values of “Higher PLC ID”, “PLC ID”, “Machine ID” (Hereinafter “AssetIDs”) and “Status ID” columns from Monitoring Repositories 141-144 (Hereinafter “Status IDs”) where the “Current” column is “Yes” to obtain the current configuration of the manufacturing field system 100. The command executed can be, for example, SELECT “Asset IDs” and “Status ID” WHERE “Current”=“Yes” FROM “Monitoring Repositories”. Denote the obtained AssetIDs and Status IDs as (A).
At 212, the rearrangement detector 131 retrieves the values of “Asset IDs” and “Status IDs” from which the “Order” column is “Recent” in Arrangement Pattern Repository 140. The command execute can be, for example, SELECT “Asset IDs”, “Status IDs” WHERE “Order”=“Recent” FROM “Arrangement Pattern Repository”. Denote the obtained values as (B)
At 213, the rearrangement detector 131 determines if there is a difference between (A) and (B). If not (N) then the arrangement pattern repository 140 reflects the most recent configuration of the manufacturing field system 100, and the flow ends. Otherwise (Y), the configuration is different from what is noted in the arrangement pattern repository 140 and the flow proceeds to 214. The rearrangement detector 131 executes the process 214 through the steps as follows.
At 214-1, the rearrangement detector 131 creates a notification message 215, which involves the following commands. The commands include making the row “operation”=“Delete” for the values associated with (B), and making the row “operation”=“Add” for (A).
At 214-2, the rearrangement detector 131 sends the notification message 215 to Asset Manager 151. The rearrangement detector 131 then executes the process 216 through the steps as follows.
At 216-1, the rearrangement detector 131 updates the “Order” column to “Past” from Arrangement Pattern Repository 140. An example of the command can be UPDATE “Order”=“Past” FROM “Network Monitoring Result Repository”. At 216-2, the rearrangement detector 131 inserts (A) to Arrangement Pattern Repository 140 with “Order” column set to “Recent”. An example of the command can be INSERT INTO “Arrangement Pattern Repository” ((A), “Order”=“Recent”).
In situations where the rearrangement detector 131 cannot recognize the order of execution, then the rearrangement detector 131 transmits messages as shown in
In example implementations, asset manager 151 will execute rearrangement notification message 215 from the top sequentially. For example, from messages 1114 and 1116, there is no Previous and Next device since PLC #1 and PLC #2 has no child device. In an example implementation, rearrangement notification message 215 can include ‘Change’ operation that include ‘Delete’ and ‘Add’ operation.
Further, if rearrangement detector 131 cannot identify Child Device ID clearly, rearrangement detector 131 can also indicate that an unidentified device is under the parent device via rearrangement notification message 215 in accordance with a desired implementation.
The format of rearrangement notification message 215 can represent not only a relationship between PLC 116-1, 116-2, and manufacturing machine 117-1, 117-2, but also a relationship between higher PLC 112 and PLC 116-1, 116-2.
Computer device 1405 can be communicatively coupled to input/user interface 1435 and output device/interface 1440. Either one or both of input/user interface 1435 and output device/interface 1440 can be a wired or wireless interface and can be detachable. Input/user interface 1435 may include any device, component, sensor, or interface, physical or virtual, that can be used to provide input (e.g., buttons, touch-screen interface, keyboard, a pointing/cursor control, microphone, camera, braille, motion sensor, optical reader, and/or the like). Output device/interface 1440 may include a display, television, monitor, printer, speaker, braille, or the like. In some example implementations, input/user interface 1435 and output device/interface 1440 can be embedded with or physically coupled to the computer device 1405. In other example implementations, other computer devices may function as or provide the functions of input/user interface 1435 and output device/interface 1440 for a computer device 1405. In example implementations involving a touch screen display, a television display, or any other form of display, the display is configured to provide a user interface.
Examples of computer device 1405 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by humans and animals, and the like), mobile devices (e.g., tablets, notebooks, laptops, personal computers, portable televisions, radios, and the like), and devices not designed for mobility (e.g., desktop computers, other computers, information kiosks, televisions with one or more processors embedded therein and/or coupled thereto, radios, and the like).
Computer device 1405 can be communicatively coupled (e.g., via I/O interface 1425) to external storage 1445 and network 1450 for communicating with any number of networked components, devices, and systems, including one or more computer devices of the same or different configuration. Computer device 1405 or any connected computer device can be functioning as, providing services of, or referred to as a server, client, thin server, general machine, special-purpose machine, or another label.
I/O interface 1425 can include, but is not limited to, wired and/or wireless interfaces using any communication or I/O protocols or standards (e.g., Ethernet, 802.11x, Universal System Bus, WiMax, modem, a cellular network protocol, and the like) for communicating information to and/or from at least all the connected components, devices, and network in computing environment 1400. Network 1450 can be any network or combination of networks (e.g., the Internet, local area network, wide area network, a telephonic network, a cellular network, satellite network, and the like).
Computer device 1405 can use and/or communicate using computer-usable or computer-readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, fiber optics), signals, carrier waves, and the like. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROM, digital video disks, Blu-ray disks), solid state media (e.g., RAM, ROM, flash memory, solid-state storage), and other non-volatile storage or memory.
Computer device 1405 can be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions can be retrieved from transitory media, and stored on and retrieved from non-transitory media. The executable instructions can originate from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).
Processor(s) 1410 can execute under any operating system (OS) (not shown), in a native or virtual environment. One or more applications can be deployed that include logic unit 1460, application programming interface (API) unit 1465, input unit 1470, output unit 1475, and inter-unit communication mechanism 1495 for the different units to communicate with each other, with the OS, and with other applications (not shown). The described units and elements can be varied in design, function, configuration, or implementation and are not limited to the descriptions provided. Processor(s) 1410 can be in the form of physical processors or central processing units (CPU) that is configured to execute instructions loaded from Memory 1415.
In some example implementations, when information or an execution instruction is received by API unit 1465, it may be communicated to one or more other units (e.g., logic unit 1460, input unit 1470, output unit 1475). In some instances, logic unit 1460 may be configured to control the information flow among the units and direct the services provided by API unit 1465, input unit 1470, output unit 1475, in some example implementations described above. For example, the flow of one or more processes or implementations may be controlled by logic unit 1460 alone or in conjunction with API unit 1465. The input unit 1470 may be configured to obtain input for the calculations described in the example implementations, and the output unit 1475 may be configured to provide output based on the calculations described in example implementations.
In an example implementation, the computer device 1405 is an apparatus such as rearrangement detect server 130 configured for detecting changes in a manufacturing field system 100 with a first network processing data regarding one or more manufacturing machines 117-1, 117-2, and a second network managing a plurality of programmable logic controllers (PLCs) 116-1, 116-2 connected to the one or more manufacturing machines 117-1, 117-2. In an example implementation, such an apparatus is communicatively coupled to the second network.
In such an example implementation, processor(s) 1410 can be configured to facilitate the functionality of rearrangement detector 131 and behavior monitor 132 with its corresponding elements, and memory 1415 can be configured to facilitate the functionality of monitoring repositories 141 with their corresponding elements and arrangement pattern repository 140 from
In an example implementation, processor(s) 1410 can be configured to update the internal hierarchy of the manufacturing field system by providing a message to update a status of the manufacturing field system, the message involving instructions to add or delete information to the internal hierarchy of the manufacturing field system as illustrated in
In an example implementation, processor(s) 1410 can be configured to monitor the plurality of PLCs through the second network by monitoring PLC status behavior through issuing an object identifier get request to the plurality of PLCs; processing from a response to the object identifier get request, information associated with identifiers of the plurality of PLCs and the one or more manufacturing machines; and for the information associated with identifiers of the plurality of PLCs and the one or more manufacturing machines comprising new information in comparison to a repository of information regarding PLC status behavior, updating the repository of information regarding PLC status behavior with the information associated with identifiers of the plurality of PLCs and the one or more manufacturing machines as illustrated in
In an example implementation, processor(s) 1410 can be configured to monitor the plurality of PLCs through the second network by processing a deep packet inspection (DPI) stream from a networking device managing the one or more PLCs for one or more features and one or more periodic sequences associated with communications between the plurality of PLCs and a higher PLC configured to manage the plurality of PLCs; and for the one or more features or the one or more periodic sequences involving new information in comparison to a repository of features and periodic sequences, updating the repository of the features and the periodic sequences with the one or more features or the one or more periodic sequences involving new information as illustrated in
In an example implementation, processor(s) 1410 can be configured to monitor the plurality of PLCs through the second network by monitoring network behavior through issuing an object identifier get request to a networking device managing the plurality of PLCs; processing from a response to the object identifier get request, information associated with throughput between one or more of the plurality of PLCs and a higher PLC managing the plurality of PLCs; and for the information associated with throughput involving new information in comparison to a repository of information regarding network behavior, updating the repository of information regarding network behavior with the information associated with the throughput as illustrated in
In an example implementation, processor(s) 1410 can be configured to determine whether the monitoring indicates a change, by for first values associated with the one or more manufacturing machines, the plurality of PLCs or a higher PLC managing the plurality of PLCs from the monitoring (as obtained from the process of 211 of
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of defined steps leading to a desired end state or result. In example implementations, the steps carried out require physical manipulations of tangible quantities for achieving a tangible result.
Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.
Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer-readable storage medium or a computer-readable signal medium. A computer-readable storage medium may involve tangible mediums such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid state devices and drives, or any other types of tangible or non-transitory media suitable for storing electronic information. A computer readable signal medium may include mediums such as carrier waves. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Computer programs can involve pure software implementations that involve instructions that perform the operations of the desired implementation.
Various general-purpose systems may be used with programs and modules in accordance with the examples herein, or it may prove convenient to construct a more specialized apparatus to perform desired method steps. In addition, the example implementations are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the example implementations as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.
As is known in the art, the operations described above can be performed by hardware, software, or some combination of software and hardware. Various aspects of the example implementations may be implemented using circuits and logic devices (hardware), while other aspects may be implemented using instructions stored on a machine-readable medium (software), which if executed by a processor, would cause the processor to perform a method to carry out implementations of the present application. Further, some example implementations of the present application may be performed solely in hardware, whereas other example implementations may be performed solely in software. Moreover, the various functions described can be performed in a single unit, or can be spread across a number of components in any number of ways. When performed by software, the methods may be executed by a processor, such as a general purpose computer, based on instructions stored on a computer-readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted format.
Moreover, other implementations of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the teachings of the present application. Various aspects and/or components of the described example implementations may be used singly or in any combination. It is intended that the specification and example implementations be considered as examples only, with the true scope and spirit of the present application being indicated by the following claims.