|
HOME
COMPANY
PRODUCTS
SUPPORT
Documentation
Product Literature
Product Sheets
User Manuals
MSP PLC Drivers
Protocol Theory
Notes
Allen-Bradley
Aromat(NAiS)
GE
Fanuc 90
GE
Fanuc VersaMax
Keyence
Mitsubishi
Modicon/Square D
(Telemecanique)
Omron
PLC Direct (Koyo)
Siemens
Total Control
Memory Usage
Wiring
FAQ
Configurator
Drivers
|
|
|
Revision: 4.6
Download
this page along with the Memory Usage and Wiring Diagrams as a Microsoft Word file
"Notes.doc" for best printing. This file is included on the disks that
come with the MSP and with all driver downloads.
What is an MSP Driver? An MSP driver is a small ladder logic program
that is added to the user program. All code is standard ladder logic. In the GLC it
requires a first scan subroutine call, some logic in the main program, and two or three
subroutines.
The user can import the driver into their program by standard Windows cut
and paste or they can start with our driver and build their program from it.
Drivers. The following driver library is for the Total Controls
GLC100. They were prepared with the Pre-Release GLC Ladder Editor 2.10 DT 23. They are
available on the Driver Installation disks. They contain rung and address comments that
are viewable in the programming package and on printouts.
| Msp_I |
1 Channel Input |
| Msp_I_M |
2 Channel Input Multiplexed |
| Msp_O |
1 Channel Output |
| Msp_O_M |
2 Channel Output Multiplexed |
| Msp_IO |
1 Channel Input, 1 Channel Output |
| Msp_IO_M |
2 Channel Input Multiplexed,
2 Channel Output Multiplexed |
Timing Parameters. These drivers are set up for the Delta protocol.
Following are some of the key timing parameters:
| Input |
|
| ID |
1.2 Scans |
| Data |
3 Scans |
|
16 Bits |
| Delta |
4 Bits |
| Delta Refresh |
16 Scans |
| Scan |
10 msec for Msp_I, Msp_IO
20 msec for Msp_I_M, Msp_IO_M |
| Output |
|
| ID |
3 Scans |
| Data |
3 Scans |
|
16 Bits |
| Delta |
4 Bits |
| Delta Refresh |
16 Scans |
| Scan |
10 msec for Msp_O, Msp_IO
20 msec for Msp_O_M, Msp_IO_M |
Quality Control File. Included with the files for each driver is a
file of the same name with the ".sp" extension. This file contains the model and
serial numbers of all hardware and software used for testing. This file also contains the
setup parameters used for testing.
Driver Files. Each driver contains both a ladder logic file (*.wll)
and a panel display file (*.prj) to demo the driver. The panel display file can be
imported into the panel builder software as a complete project. Depending on what the path
is to the ladder logic file the panel project communications driver may have to be
changed. This is accomplished by selecting the project, going to "Setup",
changing the PLC to "No Protocol", and exiting setup. This breaks the old link.
Next purge all the tags in the tag database. Finally, go to setup and change the protocol
back to Waltz. When next attempting to import the tags under the "Protocol"
button you will be asked for the file to import form. Finally, import the tags.
Programming Methods. One of the key programming methods is the use
memory locations that are accessed both as registers and bits. In several cases counters
are programmed by using a shift register. A seed is planted in bit zero of the shift
register word. To increment the counter by one the shift resistor is shifted one bit. This
allows the current value of counter to be checked by testing a single bit in ladder, which
is much more efficient than a whole register compare. These programs have been extremely
optimized for both minimum scan time and memory usage.
Numbers Format. Numbers in the GLC are 32 bits. When negative 16 bit
numbers are received the upper 16 bits need to be filled with 1's to produce a 32 bit
negative number. When negative 4 bit numbers are received the upper 28 bits need to be
filled with 1's to produce a 32 bit negative number.
Constants. There is a subroutine that executes only on first scan to
set several constants. This is the subroutine call before the "START" label.
While registers in the GLC are retentive on power cycles they are not saved with the
program and must be initialized when the program is loaded. The safest way to insure
initialization is to provide a subroutine to that sets constants on first scan. If one
could insure the constants where set when the program is loaded into a new unit then this
subroutine could be deleted.
Flasher. In the Main program two rungs contain a simple flasher.
They are used just make sure the processor is running and two see how timers work. They
may be deleted.
Life Indicator. In the Main Program there is a scan oscillator
running an output. This rung may be deleted. To measure scan time this output may be
connected to a scope.
Scan Time. I had problem getting the scan time on the save with the
program and to stay at the desired value. While getting the MSP running it is recommended
that the system variable #ScanTime be displayed on one of the GLC panels.
The scan time entered represents a minimum scan time. If program execution
exceeds the minimum the scan time will increase to the next 10-msec increment. If program
execution time is close to the set scan time, scan time may become inconsistent. Scan time
on the GLC can be changed only in increments of 10 msec. If one enters 20 in the ladder
editor controller setup you get a 20 msec scan time provided program execution can occur
in less than 20 msec. If one enters 21 then you get 30. The actual scan time is always
rounded up to the next 10-msec increment.
When the GLC is started, the controller sets its scan period to
#TargetScan. The GLCs current scan period is always stored in #ScanTime. After every
64 scans, the GLC will compare #AvgLogicTime with #ScanTime. If #AvgLogicTime is greater
than one half of #ScanTime, the controller will automatically adjust the scan period to be
twice the value of #AvgLogicTime, rounded up to the nearest 10msec interval. Once
increased, #ScanTime will never be lowered by the GLC. These automatic adjustments will
affect how you program the SensorPulse I/O modules with your ladder logic.
If the ladder editor is on-line scan time may become inconstant. This is
especially true if the set scan time is close to the logic time plus overhead. In this
case scans may change randomly 1, 2 or 3 msec. Occasionally the scan would be bumped up 10
or 20 msec. I found that the longer the program execution the greater the change in scan
time. Being online increased the average scan time some but the maximum scan time was
increased dramatically. For my longest program, Msp_IO_M, I had to increase scan time to
40 msec. to yield stable operation while being online.
All changes in scan time increased the time. Since this results in a
cumulative error operation of an MSP may become unstable. Scan time must be constant for
reliable operation of the MSP. By making the scan time long enough the GLC was able to
provide reliable operation of the MSPs.
|