Maker Pro
Maker Pro

Industrial process monitoring algorithm

Baxter Burgundy

Nov 18, 2014
38
Joined
Nov 18, 2014
Messages
38
Not so much homework, this is a revision question I have for an upcoming exam. The answers anyone provides will not be marked:

You have been approached to develop a software monitoring system for an industrial process which monitors pressure, level and temperature and has critical parameters of 120 degrees C, 30 Bar and 3 meters. You must use a development system that consists of a PIC based board with auxiliary functions for display, alarm and basic keypad. The critical parameters should be monitored so when the values determined are reached or exceeded, the monitoring system should initiate warning signals that consist of flashing lights, visual text on a console screen and an audio alarm.

1) Produce a strategy/algorithm that may include initializing the system, identifying the sensor and its status, the data during the monitoring function, and eventually initiating warnings. Assume a round robin polling strategy with equal priority.

Producing algorithms for this kind of thing is not something I am familiar with and if someone could point me in the direction of how to make a start, or give me a link to a similar algorithm which I could use as an example. I'm assuming they are looking for pseudo code in this part of the question.

Thanks
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,700
Joined
Nov 17, 2011
Messages
13,700
  1. Define the hardware architecture:
    - Which sensors will be used? How are they going to be connected to the PIC?
    - Which I/O functions will be required (digital, analog)? How many of each and how are they going to be connected to the PIC?
    - Which auxiliary functions will be required (timers, interrupt controller,s display controllers etc.?
    - Do you have real-time requirement that need imediate attention by interrupt services or can you accept a slight delay using a polling strategy to read input sigals?
  2. Define the software architecture:
    - main question: are you going to use an operating system or not? I suppose from the task description you are not, which means you'll have to implement everything from scratch (or using suitable libraries, if available).
    - Initially all function modules need to be initialized to known and useable values (direction of I/O ports, ranges of ADCs and DACs, timings for timers or counters etc.)
    - After initialization it is typical for this kind of "bare metal" code to enter an infinite loop where:
    - each input is checked (sensor data, timers, keypads, if present, etc.)
    - from the state of the inputs the required actions are computed and performed
    (activate relays, light LEDs, output text or graphics on a display, sound alarm etc.)
    repeat from the beginning of the loop

The secret lies in the code within the loop. Which inputs are available? What kind of data do these inputs deliver? How can you use these inputs to compute the resulting action (alarm, operating a control etc.)?

The level of detail required may be more or less than what I managed to describe with these few words.
 
Top