Notes: TCP

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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
  5. Timing Parameters. These drivers are set up for the Delta protocol. Following are some of the key timing parameters:

  6. 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
  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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 GLC’s 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.

 


SensorPulse Corp. • P.O. Box 8886 • Michigan City, IN 46361 • Ph: (800) 447-5900 or (219) 393-7218 • Fax: (219) 393-7318

© 1998-2002 SensorPulse Corp., All Rights Reserved.
Updated July 2003