Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

definition of a process running on a work station #4

Open
rsoika opened this issue Sep 9, 2024 · 3 comments
Open

definition of a process running on a work station #4

rsoika opened this issue Sep 9, 2024 · 3 comments

Comments

@rsoika
Copy link
Member

rsoika commented Sep 9, 2024

What is the definition of a process running on a work station / micro processor?

  • How is a work station defined
  • How long does a process typically run?
  • Is the process running in an infinite loop or are individual process instances being called?
@rsoika rsoika changed the title definition of a process running on a micro processor definition of a process running on a work station Sep 9, 2024
@gmillinger
Copy link
Collaborator

The answers will apply to a peer-to-peer computing architecture but a centralized application server is common when the latency and availability is not critical. In most cases downtime or interruption of work is not acceptable, not even one minute. Latency considerations is very critical and response time from user/equipment->workflow->UI must be less than one second. This has been accomplished for many years with centralized application servers on an isolated LAN dedicated to the manufacturing processes. But from experience a more robust solution is peer-to-peer computing which naturally creates decentralized redundency.

Q. How is a work station defined?
A. Within a manufacturing facility work is performed at a physical location where a UI is present. In a peer-to-peer architecture each location would have a monitor and small footprint pc. It is typical to use a commodity pc with a linux OS which is networked via a LAN. This pc and physical area are referred to as a "workstation". The workstation in most cases is connected to the automation equipment in the area either directly to the pc or via ethernet. Automation equipment may be barcode scanners, PLC, torque tools, sensors, and many other things. The output of the automation equipment is consumed by the workflow for many purposes and contributes to the event definition that would indicate when the current task has been completed. This is only one of many configurations and purposes of a workstation but is considered a general case. What is important to note is that the workflow tasks are assigned to one user role and the individual workflow tasks never leave the workstation or passed to other user roles. In a lot of cases there is no human interaction with the execution of the workflow.

Q. How long does a process typically run?
A. There are many categories of workflow within industry/manufacturing. Many are executed end-to-end with no human interaction (headless process) and instanced by an event/data from automation equipment. The runtime is a broad spectrum, in this case typical runtime can be very fast (less than 10 seconds to execute many tasks) or could last hours where it is important to maintain state in case of abnormal shutdown such as power outage. Another category is a hybrid process. This is where there is interaction between automation equipment and humans through the life cycle. The runtime is usually in minutes but doesn't typically go beyond 10 minutes.

Q. Is the process running in an infinite loop or are individual process instances being called?
A. Both. It is typical where a workstation will execute in a loop but the variables that determine execution are different for every execution of the workflow. For example, the workflow is waiting for a barcode read and then pulls part number data from a database. The data is assigned to variables (context) and then the next task is triggered and the execution of the task functions are determined by the part number data.

In some cases input from automation equipment may trigger workflow instances in the workstation based on the data from the automation equipment. In the first case the workflow definition doesnt change and is endlessly repeated. In this case the workflow definition can be drastically different between each execution but the workstation is capable of executing the workflow with the automation equipment in the area.

Note - there are differences between an industrial workflow and a business workflow execution engine but I have found when you break it down functionally they are almost identical. The major differences is speed of execution and interfacing with real-time automation equipment vs just getting data from IT systems or human data entry.

@rsoika
Copy link
Member Author

rsoika commented Sep 10, 2024

Ok thanks for clarification.

Regarding runtime: From the execution time of a complex Task->Event->Task flow with or without conditional events (means the process flow is computed by JavaScript Rules placed in the model) we have duration of 10-20 ms.
Is that acceptable or too slow?

Regarding the question about the infinite loop: I understand this concept and this is all fine. The advantage of many small, short-running process instances over an infinite loop is that you have better documentation in the first case. The Workflow Engine logs all events in the process instance. And so you can easily archive them in a database. For example, start time, events and transitions, measured values....

@gmillinger
Copy link
Collaborator

20ms is good, it has actually been my target in the past.

The infinite loop point... The data about the executed process instance is critical for historical analytics. The information is used for process improvement but also for traceability of some automation equipment settings/variable values that were in context at the time of process execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants