© Copyright 1993-2001, Hugh Jack
2.1.3 Hardware required and supported 25
2.1.4 Applications and uses 25
2.1.5 Advantages and Disadvantages 26
2.2.3 User accounts and root 31
2.5 LABORATORY - A LINUX SERVER 37
3.3 CLASSES AND OVERLOADING 50
3.4 HOW A `C' COMPILER WORKS 52
3.6 COMPILING C PROGRAMS IN LINUX 54
3.7 ARCHITECTURE OF `C' PROGRAMS (TOP-DOWN) 56
3.8 CREATING TOP DOWN PROGRAMS 58
3.9 CASE STUDY - THE BEAMCAD PROGRAM 59
Screen Layout (also see figure): 59
3.9.6 Testing and Debugging: 64
4.2.4 Control Network Issues 75
FTP - File Transfer Protocol 81
HTTP - Hypertext Transfer Protocol 81
Firewalls and IP Masquerading 84
4.5.1 Network Programming in Linux 91
5.1 SQL AND RELATIONAL DATABASES 109
6.2 SERIAL COMMUNICATIONS UNDER LINUX 125
6.3 PARALLEL COMMUNICATIONS 129
7.2 WHAT DOES LADDER LOGIC DO? 138
7.2.1 Connecting A PLC To A Process 139
7.3.3 Ladder Logic Outputs 147
7.4.2 A More Complicated Example of Design 150
7.5 TIMERS/COUNTERS/LATCHES 151
7.11.3 ACCEPT/REJECT SORTING 165
PLC Status Bits (for PLC-5s) 173
7.13.1 Program Control Structures 175
7.13.2 Branching and Looping 175
Immediate I/O Instructions 179
Fault Detection and Interrupts 181
7.13.3 Basic Data Handling 182
7.15.1 Comparison of Values 191
7.17 ADVANCED DATA HANDLING 194
7.17.1 Multiple Data Value Functions 195
7.17.2 Block Transfer Functions 196
7.23.1 SWITCHED INPUTS AND OUTPUTS 210
7.24.1 Electrical Wiring Diagrams 216
7.24.3 Shielding and Grounding 221
9.1.2 Positioning Concepts 266
Accuracy and Repeatability 266
9.2.1 Basic Robotic Systems 276
Automatic Guided Vehicles (AGVs) 280
9.5.1 Mitsubishi RV-M1 Manipulator 284
10.1 SEIKO RT 3000 MANIPULATOR 299
10.4 UNIMATION PUMA (360, 550, 560 SERIES) 319
10.6 LABORATORY - SEIKO RT-3000 ROBOT 330
10.7 TUTORIAL - SEIKO RT-3000 ROBOT 331
11.0.2 Spray Painting and Finishing 335
11.0.5 Belt Based Material Transfer 336
11.1 END OF ARM TOOLING (EOAT) 337
11.1.5 Other Types Of Grippers 346
11.2.1 Simulation/Off-line Programming 347
12.2.1 Denavit-Hartenberg Transformation (D-H) 359
12.3.1 Moments of Inertia About Arbitrary Axes 366
12.3.2 Euler's Equations of Motion 369
12.3.3 Impulses and Momentum 370
Geometry Methods for Forward Kinematics 392
Geometry Methods for Inverse Kinematics 393
13.2.2 Computer Control of Robot Paths (Incremental Interpolation) 400
14.2 NUMERICAL CONTROL (NC) 409
14.2.2 Computer Numerical Control (CNC) 411
14.2.3 Direct/Distributed Numerical Control (DNC) 412
14.3 EXAMPLES OF EQUIPMENT 414
14.3.2 Light Machines Corp. proLIGHT Mill 415
14.5 TUTORIAL - EMCO MAIER PCTURN 50 LATHE (OLD) 417
14.6 TUTORIAL - PC TURN 50 LATHE DOCUMENTATION: (By Jonathan DeBoer) 418
17.9.1 Segment Mass Properties 490
18.2 CORPORATE COMMUNICATIONS 502
19.4 LABORATORY - MATERIAL HANDLING SYSTEM 521
19.4.1 System Assembly and Simple Controls 521
19.5 AN EXAMPLE OF AN FMS CELL 523
19.5.2 Workcell Specifications 525
19.5.3 Operation of The Cell 526
20.2 A BRIEF OUTLINE OF PETRI NET THEORY 537
20.4 USING THE SUBROUTINES 548
20.4.1 Basic Petri Net Simulation 548
20.4.2 Transitions With Inhibiting Inputs 550
20.4.3 An Exclusive OR Transition: 552
21.2.1 Material Requirements Planning (MRP) 567
I have been involved in teaching laboratory based integrated manufacturing courses since 1993. Over that time I have used many textbooks, but I have always been unsatisfied with their technical depth. To offset this I had to supply supplemental materials. These supplemental materials have evolved into this book.
This book is designed to focus on topics relevant to the modern manufacturer, while avoiding topics that are more research oriented. This allows the chapters to focus on the applicable theory for the integrated systems, and then discuss implementation.
Many of the chapters of this book use the Linux operating system. Some might argue that Microsoft products are more pervasive, and so should be emphasized, but I disagree with this. It is much easier to implement a complex system in Linux, and once implemented the system is more reliable, secure and easier to maintain. In addition the Microsoft operating system is designed with a model that focuses on entertainment and office use and is incompatible with the needs of manufacturing professionals. Most notably there is a constant pressure to upgrade every 2-3 years adding a burden.
The reader is expected to have some knowledge of C, or C++ programming, although a review chapter is provided. When possible a programming example is supplied to allow the reader to develop their own programs for integration and automation.
Integrated manufacturing uses computers to connect physically separated processes. When integrated, the processes can share information and initiate actions. This allows decisions to be made faster and with fewer errors. Automation allows manufacturing processes to be run automatically, without requiring intervention.
This chapter will discuss how these systems fit into manufacturing, and what role they play.
An integrated system requires that there be two or more computers connected to pass information. A simple example is a robot controller and a programmable logic controller working together in a single machine. A complex example is an entire manufacturing plant with hundreds of workstations connected to a central database. The database is used to distribute work instructions, job routing data and to store quality control test results. In all cases the major issue is connecting devices for the purposes of transmitting data.
· Automated equipment and systems don't require human effort or direction. Although this does not require a computer based solution
· Automated systems benefit from some level of integration
There is a tendency to look at computer based solutions as inherently superior. This is an assumption that an engineer cannot afford to entertain. Some of the factors that justify an integrated system are listed below.
· a large organization where interdepartmental communication is a problem
· the need to monitor processes
· Things to Avoid when making a decision for integration and automation,
- ignore impact on upstream and downstream operations
- allow the system to become the driving force in strategy
- believe the vendor will solve the problem
- base decisions solely on financials
- ignore employee input to the process
- try to implement all at once (if possible)
· Justification of integration and automation,
- determine key problems that must be solved
- highlight areas that will be impacted in enterprise
- determine kind of flexibility needed
- determine what kind of integration to use
- consider implementation cost based on above
· Factors to consider in integration decision,
- previous experience of company with FMS
- scheduling / production mixes
- extent of information system usage in organization (eg. MRP)
- use of CAD/CAM at the front end.
- availability of process planning and process data
* Process planning is only part of CIM, and cannot stand alone.
· Why ? - In many cases there are valid reasons for assisting humans
- tedious work -- consistency required
- tasks are beyond normal human abilities (e.g., weight, time, size, etc)
Figure 1.1 - Automation Tradeoffs
· Advantages of Automated Manufacturing,
- simplification of production
- increased moral in workers (after a wise implementation)
- more responsive to quality, and other problems
· Various measures of flexibility,
- Able to deal with slightly, or greatly mixed parts.
- Variations allowed in parts mix
How Computers Can Be Used in an Automated Manufacturing System
CAD - Computer Aided/Automated Design - Design geometry, dimensions, etc.
CAE - Analysis of the design done in the CAD system for stresses, flows, etc. (often described as part of CAD)
CAM - Computer Aided/Automated Manufacturing - is the use of computers to select, setup, schedule, and drive manufacturing processes.
CAPP - Computer Aided Process Planning - is used for converting a design to a set of processes for production, machine selection, tool selection, etc.
PPC - Production Planning and Control - also known as scheduling. Up to this stage each process is dealt with separately. Here they are mixed with other products, as required by customer demand, and subject to limited availability of manufacturing resources.
Factory Control - On a minute by minute basis this will split up schedules into their required parts, and deal with mixed processes on a factory wide basis. (This is very factory specific, and is often software written for particular facilities) An example system would track car color and options on an assembly line.
Workcell Control - At this system level computers deal with coordination of a number of machines. The most common example is a PLC that runs material handling systems, as well as interlocks with NC machines.
Machine Control - Low level process control that deals with turning motors on/off, regulating speeds, etc., to perform a single process. This is often done by the manufacturers of industrial machinery.
· A common part of an integrated system
· In CAD we design product geometries, do analysis (also called CAE), and produce final documentation.
· In CAM, parts are planned for manufacturing (eg. generating NC code), and then manufactured with the aid of computers.
· CAD/CAM tends to provide solutions to existing problems. For example, analysis of a part under stress is much easier to do with FEM, than by equations, or by building prototypes.
· CAD/CAM systems are easy to mix with humans.
· This technology is proven, and has been a success for many companies.
· There is no `ONE WAY' of describing CAD/CAM. It is a collection of technologies which can be run independently, or connected. If connected they are commonly referred to as CIM
· integrated manufacturing systems are built with generic components such as,
· Typical applications found in an integrated environment include,
- Computer Aided Design (CAD) / Computer Aided Engineering (CAE)
- Computer Aided Process Planning (CAPP)
- Production Planning and Control (Scheduling)
- Shop Floor Control (e.g., FMS)
· The automated machines used include,
- Material Handling / Transport
- Manual / Automated Assembly Cells
· On the shop floor computers provide essential support in a workcell for,
- CNC - Computer Numerical Control
- DNC - Direct Numerical Control of all the machine tools in the FMS. Both CNC and DNC functions can be incorporated into a single FMS.
- Computer control of the materials handling system
- Monitoring - collection of production related data such as piece counts, tool changes, and machine utilization
- Supervisory control - functions related to production control, traffic control, tool control, and so on.
· Manufacturing requires computers for two functions,
- Information Processing - This is characterized by programs that can operate in a batch mode.
- Control - These programs must analyze sensory information, and control devices while observing time constraints.
· An integrated system is made up of Interfaced and Networked Computers. The general structure is hierarchical,
· The plant computers tend to drive the orders in the factory.
· The plant floor computers focus on departmental control. In particular,
- synchronization of processes.
- downloading data, programs, etc., for process control.
- analysis of results (e.g., inspection results).
· Process control computers are local to machines to control the specifics of the individual processes. Some of their attributes are,
- program storage and execution (e.g., NC Code),
- observe time constraints (real time control).
· The diagram shows how the characteristics of the computers must change as different functions are handled.
· To perform information processing and control functions, each computer requires connections,
- Stand alone - No connections to other computers, often requires a user interface.
- Interfaced - Uses a single connection between two computers. This is characterized by serial interfaces such as RS-232 and RS-422.
- Networked - A single connection allows connections to more than one other computer. May also have shared files and databases.
- RS-232 (and other RS standards) are usually run at speeds of 2400 to 9600 baud, but they are very dependable.
- IEEE-488 connects a small number of computers (up to 32) at speeds from .5 Mbits/sec to 8 Mbits/sec. The devices must all be with a few meters of one another.
- Ethernet - connects a large number of computers (up to 1024) at speeds of up to 10 Mbits/sec., covering distances of km. These networks are LAN's, but bridges may be used to connect them to other LAN's to make a WAN.
- Mainframes - Used for a high throughput of data (from disks and programs). These are ideal for large business applications with multiple users, running many programs at once.
- Workstations (replacing Mini Computers) - have multiprocessing abilities of Mainframe, but are not suited to a limited number of users.
- Micro-processors, small computers with simple operating systems (like PC's with msdos) well suited to control. Most computerized machines use a micro-processor architecture.
· A Graphical Depiction of a Workstation Controller
1. What is concurrent (parallel) processing and why is it important for workcell control?
(ans. to allow equipment to do other tasks while one machine is processing)
2. What is meant by the term "Device Driver"?
(ans. a piece of hardware that allows a connections to a specific piece of hardware)
a) Integrated production technologies.
b) The best approaches to manufacturing.
Linux is a free UNIX clone that was developed by volunteers around the world. Although Linux is almost a decade old, it went largely unnoticed by the general public until a couple of years ago. Since then it has become very popular with individual users, universities and large corporations. For example, IBM has made it a major part of their business strategy for server hardware. Many software companies already offer Linux versions of their software, including products such as Oracle, Labview and MSC Nastran. Other companies have developed embedded applications using Linux. Currently Linux can be found in devices as small as a wristwatch [1] and as large as a Beowulf class supercomputer [2]. The popularity of Linux is based on three factors:
- costs are lower because the software is free and it runs well on less expensive hardware.
- it has more software, capabilities, and features than other operating systems.
- the source code is open, so users can customize the operating system to meet their needs.
This chapter will present the Linux operating system in general, and its current status in computing.
Linux is an open source operating system. It is open because users and developers can use the source code any way they want. This allows anyone to customize it, improve it and add desired features. As a result Linux is dynamic, evolving to respond to the desires and needs of the users. In contrast, closed operating systems are developed by a single corporation using static snapshots of market models and profit driven constraints.
Linux is free. This allows companies to use it without adding cost to products. It also allows people to trade it freely. And, with the profit motive gone, developers have a heightened sense of community interest. The Linux community has developed a tremendous spirit because of these core development concepts.
Linux has existed since the early 1990s [3], but it grew out of previous developments in computing [4]. It was originally developed to be a Unix clone that would run on low cost computer hardware. Unix was developed in the 1970s. Through the 1970s and early 1980s it was used on large computers in companies and universities. During this time many refinements and enhancements were made. By the mid 1980s Unix was being used on many lower priced computers. By the end of the 1980s most universities were making use of Unix computers in computer science and engineering programs. This created a wealth of graduates who understood what they could expect from a mature operating system. But, it also created a demand to be able to do high level work at home on low priced machines.
Early in the 1990s Linux started as a project to create a Unix clone that would run on a personal computer. This project gained momentum quickly and by the mid 1990s it was ready for users. The first groups to adopt it were hobbyists, academics and internet services. At this time the general public was generally unaware of Linux but by the end of the 1990s it was beginning to enter the public sphere. By 2000 it had entered the popular press, and it was cited as a major threat to at least one existing operating system vendor. Now, it is available off-the-shelf in software and book stores.
1970s - Unix developed at AT&T labs by Ken Thompson and Dennis Ritchie
1980s - Unix became popular on high end computers
- The Unix platform is refined and matures
- Some versions of Unix were available for PCs - most notably QNX
1990s - Linus Torvalds begins working on a free Unix clone for PCs in 1991
- Others join the project it gets the name `Linux'
- By 1993 Linux begins to enter the mainstream of computer users
- Linux machines constitute a large number of servers on the Internet
- Many large companies begin to support Linux - e.g. Dell, IBM
2000s - Home and office users are supported with free office software
- Linux is available in consumer products, such as Tivo recorders
Modern computers have ample power for most computer applications. This is more true for Linux. At present there are versions of linux that will run on any platform from an IBM mainframe computer to a Palm Pilot. The smallest Linux installations can fit on a single floppy disk, and run on a diskless computer with a few MB of memory. On the other end of the spectrum, Linux will run on most high end computer systems. An average user would expect reasonable performance on a computer with an old Pentium 100 processor, 64MB of memory, and 2 GB of disk space. On newer computers the performance of the operating system is extremely fast. The list below gives some idea of the capabilities, but complete lists of supported hardware are available [5].
CPU - Intel family and clones, down to `386 processors
- Others: Alpha, MIPS, Sparc, etc.
Memory - 16MB is a good minimum, 64MB is recommended
Disk - 200MB is a minimum, 2GB is recommended
By itself an operating system is somewhat useless, software applications are added to give desired functionality. Some of the common applications that a computer might be used for are listed below. Linux will support all of these applications, and more, with the right software [6].
Office - word processing, spreadsheets, etc.
Web and Internet Servers - host web sites
Server - databases and other institutional functions
Embedded - inside devices such as Tivo TV recorders
PDAs - an operating system for small handheld computers
A partial list of advantages and disadvantages is given below. The cost, stability and open nature of the system have been winning over a large number of corporate adopters. But, adoption has been slowed by people who don't understand the nature of free software or have a perception that it is difficult to use. In some cases there are also some software packages that are not available for Linux, and won't run under simulators [22] - the most notable of these applications are first person shooting games.
Free - paying for it is optional
Open - the source code is available and can be changed
Goodwill - developers and users are very helpful
Faster - it doesn't require newer hardware, extra memory and larger disks
Stable - it is very uncommon for Linux to crash (no blue screens)
Flexibility - more capabilities and features
Complete - all of the software is available and open - no `extra' software to buy
Security - very secure - unauthorized users can't change machine settings
Simplicity - point and click configuration
Compatibility - some programs will not run under simulators
Misunderstanding - some people believe `you get what you pay for'
There are multiple distributions of Linux. While these all contain the Linux Kernel, they often include different pieces of software, and installation processes vary somewhat. The basic licensing agreement that Linux is distributed under requires that even if it is sold for a fee, it must be made available at no cost and it may also be copied freely by the user. As a result you can often download these distributions over the network at no cost [12][13]. The total download size can be up to 600MB. An alternative is to buy a distribution (the typical cost is $30) which includes a floppy disk, a CD-ROM and a brief manual. These can be found at any store that sells software. Sometimes the distribution will have a higher cost for `deluxe' versions - this more costly package often includes telephone support.
In total there are hundreds of Linux distributions. Many of these are specialized for features such as embedded systems, foreign languages, internet servers and security. The list below is for user-friendly installation and usage. The most successful of these distributions is Redhat. Some distributions, such as Mandrake, are based on the Redhat distribution, but with enhancements.
Redhat - the original consumer friendly Linux [7]
Mandrake - a Redhat derivative [8]
Caldera - another well established distribution [9]
Debian - a release that focuses on stability [10]
Each distribution of Linux will have a slightly different installation procedure, but they all follow the basic steps below. The total time to install Linux will between one to two hours. Users with a high level of knowledge can opt to do advanced setup, and new users will have the option of letting the system suggest installation options.
2. Insert a provided floppy disk (you can also boot from a CD on newer computers)
3. Turn the computer on, it will start to load Linux
4. You will be asked some questions about the type of installation you want
5. Linux will format the disks, and start to load the software
6. While it is loading you will be able to set times, dates and passwords
7. You be asked to set up the graphics for the window manager
8. When the installation is done the computer will reboot, and you will be ready to use it
This section is a brief overview of the Linux operating system. The intention is to overview the basic components in the operating system. An administrator can manage the operating system using the graphical user interface (GUI), or using typed commands. New users often prefer to use the system using the GUI. Advanced users often prefer to use commands to administer the system, they are often faster and more reliable.
Commands can be typed in a command window. Typed commands are case sensitive, and most commands are lower case. Spaces are used to delimit (separate) commands and arguments, so they should also be used when typing. Linux allows users to perform some very sophisticated operations with a single command. But, while learning this should not pose a problem, unless logged in as root. While learning the user is encouraged to use a normal user account so that accidental damage to the system can be minimized.
The terms below are some of the keywords that are unique to Linux. These will appear during the installation, or during common usage of the system.
booting When a Linux computer starts it checks the hardware, and then starts
software. The process of booting takes less than a minute in most cases
kernel The core of the operating system that talks to all hardware and programs
shell A windows that allows you to type commands
permissions Control who can change what
GNU (Gnu's Not Unix) A group that develops free software comprising a large
The directory and file structure of Linux is hierarchical, much like other popular operating systems. The main directory for the system is call root and is indicated with a single slash `/'. There are a number of subdirectories listed below that are used for storing system files, user files, temporary files and configuration files. A sample of the standard directories are shown below, and can be viewed with a file manager, or with keyboard commands. If other disks are used, such as a CDROM, or floppy disk, they are mounted under the root directory. (i.e., there are no `C', `A' or other drives, they are all under `/'.) (Note: the UNIX slash is `/', not the `\' used on DOS.)
A list of some of the more important directories follows with a brief description of each. Most users have their home directories under the '/home' directory. Most of the other directories are of interest to the system administrator.
/etc - device and software configuration files are kept here
/tmp - temporary files are created here
/home - user directories are kept here
/var - this is a place for log files, mail storage, etc.
/usr - software is installed under this directory
/dev - where devices are kept - they are accessed like files
/bin - some of the programs are kept in this directory
Every file and directory has a unique name which can be used to refer to it. Sometimes it is useful to be able to refer to groups of files without typing the name of each one. Wildcard allow file and directory names to be matched to patterns. The list below shows some of the wildcards commonly used.
Some examples of filenames with wildcards, and files they would match are shown below.
??e.* ape.exe eee.thisisanother
../hi.* hi.there (in directory above)
~/*.there hi.there (in your home directory)
Filenames can contain numbers, letters and a few other symbols, but care should be used to avoid symbols that also have meaning to Linux, such as the asterisk '*'. File names that begin with a period '.' are system files that are normally hidden. For example, most users will have a file in their home directories called '.profile' or '.login'. These are used when a user logs.
Some of the standard Linux commands for files and directories are listed below. Most of the file and directory names can be used with wildcards.
cd newdir change directory to 'newdir'
pwd show present working directory
ls list the files in the current directory
ls -la list the files in the current directory in full form
ls files list files that match the 'files'
rm files removes the named 'files'
rm * removes all the files in the current directory (use with care)
rm /* removes all of the files in the computer (only do this if you are insane)
mkdir name make a directory 'name'
rmdir name remove a directory 'name'
mv from to move a file/directory 'from' an old name 'to' a new name
cp from to copy a file 'from' the an old name 'to' a new name
more file type out the contents of 'file' on page at a time
cat file type out the contents of 'file'
vi file a text editor for 'file' (some commands given below)
`dd' - cut a line (command mode)
'p' - paste a line below the current line (command mode)
`x' - delete a character (command mode)
`r' - replace a character (command mode)
`R' - replace a string (command mode -> edit mode)
`a' - append to a line (command mode -> edit mode)
`i' - insert a string (command mode -> edit mode)
`:w' - write to a file (command mode)
`:q' - quit from a file (command mode)
ESC - move from edit to command mode
du check the disk usage of the current directory
du ~ check the disk usage of your home directory
df check total disk space available
sort this will sort the contents of a file
ln -s to from create a symbolic link 'from' a name 'to' a file
grep thing files search 'files' for the string 'thing'
compress file compress a 'file'
Linux follows very strict conventions for file and directory permissions. These require that each file and directory be given specific permissions for public reading, writing and execution. Each user is given their own account with a password, so that access to the system is controlled. Only the root user can access all files and directories on the system. Other users are limited to files they own, or files that have been marked public. Typically the root user is only used for administration, and normal users use non-root accounts. This generally keeps the system safe from careless damage, and security breaches. Each user has their own home directory, normally in the `/home' directory. The permissions for files and directories are set so that the user has complete control over that directory.
The permissions for files can be seen by doing a directory listing with 'ls -la'. This will show flags something like '-rwxrwxrwx jackh user' for a file that everybody can read 'r', write 'w' or execute 'x'. The leftmost 'rxw' is for the user 'jackh', the second 'rwx' is for the group 'user' and the rightmost 'rwx' is for everybody on the system. So if the permissions were '-rwxr--r--' everybody on the system can read the file, but only the owner can write and execute it.
For security reasons, write permissions for files are normally only allowed for the owner, but read permissions are normally given to all. Execute permissions are normally set for all users when the file can be executed, such as a program. Sometimes more than one user wants to have access to a file, but there are reasons to not permit permission to everybody. In this case a group can be created and given permission to use a file.
Commands that are oriented to users and permissions follow.
passwd user change the password for a user
chmod flags files change the permission 'flags' for 'files'
chown user files change the owner of 'files' to 'user'
finger user give information about a 'user'
who look at who is logged into your machine
last a list of the last users logged in
whoami give your current user name
su - name change to a different user
chgrp group files add a 'group' to a file
Most of the user information is stored in the '/etc' directory. For example, user account information is stored in the 'passwd' file. User passwords are stored in the 'shadow' file. Group information is stored in the 'groups' file. It is possible to add users to the system by editing these files, but there are commands that make it easier to update and maintain these files.
The 'passwd' command is used to change user passwords. In general passwords are the main line of defense against unwanted intruders. Most systems will do simple password checks when passwords are entered. In general, if a password can't be found in a dictionary or index of a book it will generally be safer.
At any one time there are multiple programs (processes) running on a Linux computer. When you run a program it becomes another process also running on the computer. Each process is given it's own unique process ID number (PID). Each process is given it's own private memory space, and allowed to run for a fraction of a second every second.
The list of commands below allow the processes in the computer to be seen. They also allow the general state of the machine to be determined.
ps -aux Print a list of processes running on the computer
kill -9 pid Kill a process with 'pid' running on the computer (uses the PID # from ps -ef)
passwd user Change the password of a 'user'
date print system date and time
who show who is logged into the machine
fg bring background processes to the foreground
bg send a stopped process to the background
<CNTL>C hitting this key sequence will kill a running process
<CNTL>Z hitting this key sequence will stop a running process, but not kill it
command & any command followed by an '&' ampersand will be run in the background
Simple commands can be combined together with pipes to make more complicated functions. An example is 'ls | more'. By itself 'ls' will list all the files in a directory. 'more' is normally used to print out text files. But in this case the output of 'ls' is passed (piped) through 'more' so that it only prints one screen at a time. Multiple commands can be combined on a single command line by separating them with a colon ':'. For example the command 'ls ; ls ..' would list the contents of the current directory, then the parent directory.
Output from functions can be redirected to files instead of the screen. For example 'ls > temp' will take the normal output from the 'ls' function, and write it into a textfile called 'temp'. Input to functions can be directed into a program. For example 'sort < temp' will make the file 'temp' the input to the sort command.
Simple batch files can be created by putting a list of commands in a normal text file. The file can then be made executable using the command 'chmod 755 filename'. The program can then be run using './filename'.
Networks are a key component of Linux operating systems. Each computer on a network may have a name, such as 'claymore.engineer.gvsu.edu', but each computer must have a number, such as '148.61.104.215'. You can log into other Linux and Unix machines with commands such as `telnet claymore.engineer.gvsu.edu', 'telnet 148.61.104.215' or `rlogin claymore.engineer.gvsu.edu'. This allows you to sit at one machine, and use many others, even around the world.
You can also access other computers with public access directories using the `ftp' command. For example try `ftp ftp4.netscape.com'. This will connect you to a computer some place in the U.S. When it asks you for your `login name' type `anonymous'. When it asks for a `password', enter your name. You may now move around using ls, pwd, cd, etc. If you want to get a file from some directory, type `binary', then type `get filename', or 'get filenames'. `quit' ends everything. If you log into a machine with FTP and you have write permissions you can also write files to the machine using 'put filename' or 'mput filenames'. If you use FTP to log into a computer that you have account on you will be able to move outside of the limited ftp directories.
Security is not a significant problem for a computer that is not connected to a network, and passwords will protect it from `honest thieves'. When connected to a network there is potential for security problems. These problems become more serious when the computer is connected to the network 24 hours a day. General rules to keep a computer safe (this applies to non-Linux computers also) are:
keep user passwords safe - these can be the start of a security breach
protect the root password - loosing this throws the system wide open
shut down unneeded programs - network programs sometime have bugs that open doors
Above the basic features of the Linux system are a number of more advanced features and commands. Some of these are listed below.
pine a simple interface for mail usage
mail a somewhat bothersome mail tool (see pine).
man func bring up a manual page for 'func'
man -k string brings up information on 'string'
tar -xvf file.tar extract files from an archive file 'file.tar'
tar cvf - files > file.tar put 'files' into an archive file 'file.tar'
When one logs into a Linux system, you are actually running a program (shell) this is in some ways similar to DOS. In the standard shell you are given a prompt, where you type your command. If it is not a built-in command, it searches on the disk according to a user-specified search path, for an executable program of that name. Almost all commands are programs that are run in this manner. There are also executable shell scripts, similar to command files on DOS. Linux is limited to running a program of a size equal to the sum of its memory, and swap space. As the system is multi-tasking, any program (or part thereof) that is not currently being run when extra memory is required, is swapped (moved) out to the disk, until it is ready to run again.
In shells there are environment variables set. Some of the commands that can be used to view these are shown below. They can be set by editing the appropriate text files.
alias prints a list of command aliases
printenv prints a list of the environment variables
The GUI in Linux is actually two programs working together. The basic program is called X windows, and it provides basic connection to the screen, mouse, keyboard and sound card. The look-and-feel of the GUI is provided by the window manager. One simple window manager is called `fvwm' and it can behave like Windows 95/98. Newer window managers include Gnome and KDE. While these both provide similar capabilities and features, most users develop personal preferences for a single window manager.
Devices and settings can be configured under X-windows using graphical tools. Settings can also be configured with text files, but this is not necessary. Examples of settings that the user or root might want to change are:
Modem properties for internet connection
Network card properties for connection to a LAN
Customize the windows settings and behavior
Most users focus less on the Operating System, and more on the programs that it will run. The task list below includes many of the applications that would be desired by the average user. Most of the listed applications are free, with the exception of the games. Many of these packages are a standard part of Linux distributions.
· Office Software - these include spreadsheets, word processors, presentation software, drawing
tools, database tools, 3D graphics tools
Netscape - allows browsing of the internet [16]
Files - there are many file viewers that ease directory browsing
Eazel - allows active directory browsing [17]
· Administration and Utilities
Apache - the most popular web server program [18]
Postgres and MySQL - Database programs [19] [20]
Replace a microsoft networking server [21]
DOS/Windows Simulator VMWare [22]
To set up a Linux server that can be used for controlling automation.
At the core of every integrated manufacturing system is a server. A server is a computer, running a networked operating system that can connect to many other computers. The function of a server is to communicate information between different devices on the factory floor.
The most important part of a server is the operating system. Mature operating systems such as Unix and Linux are well established, while newcomers, such as Windows NT are trying to establish themselves.
1. Go to the web site www.linux.org and read about Linux.
2. Go to the RedHat Linux site and read the installation instructions. (www.redhat.com)
1. Locate a computer to use. Install Linux using the following instructions.
2. After the installation is done and the computer has been rebooted go through the following Linux tutorial.
3. If you need more practice with linux try another basic user tutorial (www.linux.org).
4. Update the main webpage on the machine, and create a web page for yourself also in your own public_html directory.
1. Have the machine up and running properly, including X-windows.
2. Have a running web server with a main web page, and for you.
This section outlines the steps and choices that were used while installing Redhat 7.0. You can also refer to other installation guides (www.redhat.com) in the event of problems.
1. Open the computer to determine the following information.
2. Insert the distribution floppy disk and CD and turn on the computer. The computer will start to boot automatically. After some time a graphical interface should appear and you will be asked questions.
3. The choices that I made follow in sequence. You should adapt these to the computer you have. The settings I expect you will need to change are marked with an asterisk '*'.
*Mouse - Microsoft Intellimouse
Install Options - Custom System
Partitioning - using disk druid
*Add a partition - mount '/', size 1500MB, partition type Linux Native
*Add a partition - partition type Linux Swap, size remaining about 50MB
Lilo Configuration - "Create Boot Disk" selected
Install Lilo on '/dev/hda MBR'
Network - configured with "DHCP", "activate on boot"
*- added a user account for myself 'jackh'
Authentication Configuration - left all as is
Selecting Package Groups - the following list were the only ones chosen