- •Introduction
- •1 Quick Start
- •Overview of the Example
- •Create a Project and Adding a Drive
- •Editing the Program
- •Building and Downloading the Program
- •Monitoring Operation of the Program
- •Importing sm-Applications Lite syptLite Programs
- •Upgrading from the dpl Toolkit
- •Loading a dpl File from disk
- •Uploading a dpl File from a Target Node
- •Starting sypt
- •Configuration Editor
- •Menu Bar
- •Toolbars
- •View toolbar for the Hardware Architecture view
- •Status Bar
- •Hardware Architecture View
- •Link Architecture View
- •Cyclic Data View
- •Specifying Workbench Options
- •Dpl Editor
- •SyptLite
- •Watch Window
- •Menu Bar
- •Managing Projects
- •Creating Projects
- •Opening Projects
- •Saving Projects
- •Viewing Project Properties
- •Cloning Projects
- •Closing Projects
- •Printing Projects
- •Defining a Project Header
- •Inserting Nodes
- •Selecting Nodes
- •Editing the Properties of Nodes
- •Editing Node Descriptions
- •Deleting Nodes
- •Cutting, Copying, and Pasting Nodes
- •Rearranging Nodes
- •Networks
- •Unreachable Nodes
- •Inserting Networks
- •Selecting Networks
- •Deleting Networks
- •Editing the Properties of Networks
- •Pc Communications Settings
- •Rearranging Networks
- •Splitting Network Rails
- •Merging Network Rails
- •Cyclic Data Links
- •Inserting Data Links
- •Inserting Broadcast Links
- •Defining Cyclic Data
- •Viewing Cyclic Data
- •Selecting Links
- •Rearranging Links
- •Deleting Data Links
- •Editing Source/Destination Node Descriptions
- •Annotations
- •Inserting Annotations
- •Editing the Contents of Annotations
- •Formatting Text in Annotations
- •Deleting Annotations
- •Dpl Programs
- •Creating Programs
- •Opening and Closing Programs
- •Saving Programs
- •Editing Programs
- •Specifying the Floating-Point Model
- •Inserting Sections
- •Inserting Diagrams
- •Inserting Variables, Parameters or Numbers
- •Inserting Function Block Calls
- •Inserting Files
- •Inserting the Date and Time
- •Selecting Items in Programs
- •Cutting, Copying, and Pasting Items
- •Finding and Replacing Text
- •Go to a Source Line
- •Editing Diagram Titles
- •Editing/ Viewing the Properties of Programs
- •Printing Programs
- •Templates
- •Dpl Syntax Templates
- •Defining a Template
- •Dpl Templates Dialog
- •Defining a Template Category
- •Deleting a Template/ Changing a Template Name
- •Deleting a Category/ Changing a Category Name
- •Template Shortcut keys
- •Inserting a Template into a Program
- •Creating a Library
- •Specifying Function Block Properties
- •Library Folder Structure
- •Viewing Library Properties
- •Library Manager
- •Referencing and Using a Library
- •Removing a Reference To a Library
- •Exporting a Library
- •Importing a Library
- •Switching the Configuration Editor Online
- •Switching the Configuration Editor Offline
- •Node Detection and Indications
- •Successfully Detected Nodes
- •New Node
- •Nodes Not Found
- •Cyclic Data Mismatches
- •Cyclic Master and Trip Indications
- •Refreshing the View of Nodes While Online
- •Adding Detected Nodes
- •Deleting Target User Programs
- •Building Applications
- •Showing Build Errors
- •Downloading Node Programs
- •Uploading Node Programs
- •_______________________________________________________________________________________________ Accessing Diagnostic Information for Nodes
- •Accessing Identification Information for Nodes
- •Monitoring the Values of Variables and Parameters
- •Watching Values in the dpl Editor
- •Setting Up a Watch List
- •Opening and Closing Watch Lists
- •Saving Watch Lists
- •Adding Variables and Parameters to a Watch List
- •Selecting Watch List Items
- •Cutting, Copying, and Pasting Watch List Items
- •Removing Items from a Watch List
- •Editing the Properties of Watch List Items
- •Rearranging the Order of Watch List Items
- •Changing the Values of Variables or Parameters
- •Controlling Program Execution
- •Stopping and Starting Programs
- •Pausing and Resuming Programs
- •Stopping and Stepping Tasks
- •Running Tasks
- •Using Breakpoints
- •Switching dpl Programs to Editing Mode
- •Resetting Node Programs
- •Resetting Drives
- •Abs - Absolute
- •Ansiread - ansi Master Command
- •Ansireadn - ansi Master Command
- •Ansireply - ansi Master Command (ud70 and md29)
- •Ansireply - ansi Master Command (sm-Applications)
- •Ansiwrite - ansi Master Command
- •Ansiwriten - ansi Master Command
- •ApcSetRunMode
- •ApcReset
- •ApcGetOutputSpeed
- •ApcGetOutputSpeedRpmx10
- •ApcSelectAbsoluteMode
- •ApcSelectRelativeMode
- •ApcReadPar
- •ApcSetPositionResetOffset
- •ApcResetSourcesOnDisable
- •ApcDoNotResetSourcesOnDisable
- •ApcSetReferenceSource
- •ApcSetFeedbackSource
- •ApcSetNumOfTurnsBits
- •ApcEnableRefSourceMarker
- •ApcDisableRefSourceMarker
- •ApcEnableFbckSourceMarker
- •ApcDisableFbckSourceMarker
- •ApcResetRefSourceMarkerFlag
- •ApcResetFbckSourceMarkerFlag
- •ApcResetRefSourceFreezeFlag
- •ApcResetFbckSourceFreezeFlag
- •ApcInvertRefSource
- •ApcDoNotInvertRefSource
- •ApcInvertFbckSource
- •ApcDoNotInvertFbckSource
- •ApcSetReferencePosition
- •ApcSetFeedbackPosition
- •ApcGetReferenceStatus
- •ApcGetFeedbackStatus
- •ApcSelectReference
- •ApcSelectActionOnFreeze
- •ApcSetStopMode
- •ApcSetPositionSetPoint
- •ApcSetSpeedSetPoint
- •ApccamInitialise
- •ApccamInitialise1
- •ApccamInitialise2
- •ApccamInitialise3
- •ApcSetCamStartIndex
- •ApcSetCamSize
- •ApcSetCamDeltaSegLimit
- •ApcSetCamInterpolationMode
- •ApcSetCamOutRatioNumerator
- •ApcSetCamOutRatioDenominator
- •ApcSelectCamAbsoluteReset
- •ApcSelectCamZeroReset
- •ApcSetCamAbsResetIndex
- •ApcSetCamAbsResetPositionInSeg
- •ApcEnableCamSingleShot
- •ApcDisableCamSingleShot
- •ApcSetDigLockMode
- •ApcSetDigLockRatioNumerator
- •ApcSetDigLockRatioDenominator
- •ApcSetDigLockLockingSpeed
- •ApcSetDigLockLockingPosition
- •ApcSetSpeedOffset
- •ApcSetPositionOffset
- •ApcDisableRigidLock
- •ApcEnableProfile
- •ApcDisableProfile
- •ApcSetProfileAccelRate
- •ApcSetProfileDecelRate
- •ApcSetProfileMaxSpeedClamp
- •ApcSetPGain
- •ApcSetPGainSpeedClamp
- •ApcEnableExternalRefSpeed
- •ApcDisableExternalRefSpeed
- •ApcSetExternalRefSpeed
- •ApcEnableExternalRefPosition
- •ApcDisableExternalRefPosition
- •ApcSetExternalRefPosition
- •ApcSetOutputRatioNumerator
- •ApcSetOutputRatioDenominator
- •ApcSetupOutputChannel
- •ApcEnableOutputChannel
- •ApcDisableOutputChannel
- •ApcWriteOutputChannel
- •ApcToUserPosition
- •ApcToUserVelocity
- •ApcToUserAcceleration
- •Arrayget - Get Array Element
- •Arrayset - Set array element
- •Arraysort
- •Arraystat
- •Assram - Associate an array with a file
- •Autosync - ctNet Sync Master Redundancy
- •Autosyncerror
- •Average - Running Average
- •Bcd2bin - Binary-coded Decimal to Binary Conversion
- •Bin2bcd - Binary to Binary-coded Decimal Conversion
- •Bcd2seg - Binary-coded Decimal to Seven-segment Display Data
- •Blkdef - Block Parameter Write
- •Bridge - rs485 Serial Protocol Function
- •Cambox - cam function generator
- •Cambox2 - cam function generator
- •Cambox/cambox2 - cam information
- •Caminit - cam Table Initialise
- •CanConfigEvent
- •CanGetNodeAddr
- •CanReady
- •CanSetup
- •CanStatus
- •CanStatusAll
- •Checknode - Check Existence of Node on ctNet
- •CloseSmartCard
- •Cmodexfer
- •Cmp - Comparison Block
- •Condparw - Conditional Parameter Write
- •ConvertBackwards
- •ConvertForwards
- •Cos - Cosine Function
- •Crc16 - Cyclic Redundancy Check
- •Ctd - Down Counter
- •Ctu - Up Counter
- •Ctud - Up/ Down Counter
- •Ctnetdiagnostics
- •CtSyncDisableOutputChannel
- •CtSyncEnableOutputChannel
- •CtSyncGetSlaveReferences
- •CtSyncSetMasterReferences
- •CtSyncSetupOutputChannel
- •CtSyncWriteOutputChannel
- •Datastuff
- •Decoder4/decoder8
- •Digsel8 - Digital Select Block
- •IDMux/ fDMux / iDMux8 - De-multiplexers
- •Dterm - Differentiator Block
- •Editfastlink/editslowlink - ctNet Cyclic Link Editing
- •Egb / egb2
- •EnableCanTrips
- •Encoder4/encoder8 - Binary Encoder Blocks
- •Exp - Exponential Function
- •Filter - First-order Digital Filter
- •Float - Integer to Floating Point Conversion
- •Float32
- •Getchar - Read rs485 Port
- •GetNextSmartCardFile
- •GetParAttr
- •GetSamplesPerSec
- •GetTaskId
- •Home1 - Homing function
- •Home2 - Homing function
- •HiLoDet - Max and min value detection
- •Int - Floating Point to Integer Conversion
- •ITerm - Integrator Block
- •IWindow
- •ILimit/ fLimit
- •ILimit2/ fLimit2
- •IInvert/fInvert
- •Ln - Natural Logarithm
- •LinInt - Linear Interpolation
- •Modexfer
- •Mpot - Motorised Pot
- •Muldivrm
- •IMux / fMux / iMux2 / fMux2 / iMux8 - Multiplexers
- •Nand4 - Four-input nand Gate
- •Neg - Inverts Input
- •Netreply
- •Netstatus
- •Nor4 - Four-input nor Gate
- •OpenReadSmartCard
- •OpenWriteSmartCard
- •Or4 - Four-input or Gate
- •IOs/ fOs - Offset-Scale
- •Pfixread - Fixed Precision (3 dps) Parameter Read
- •Pfixread6 - Fixed Precision (6 dps) Parameter Read
- •Pfixwrite - Fixed Precision (3 dps) Parameter Write
- •Pfixwrite6 - Fixed Precision (6 dps) Parameter Write
- •Pid - pid Block
- •Posloop - Position Loop Controller
- •Posloop2 - Position Loop Controller
- •Precisiontimer
- •Pt - Pulse Timer
- •Ptd - Pulse Timer
- •Putblock
- •PutBottomWord
- •Putchar - Write Character to rs485 Port
- •Putkey - Write Character to Port
- •PutTopWord
- •RamLength
- •Ramp - Linear Ramp
- •Readnet
- •Readnetb
- •ReadReadOnlyBit
- •ReadSmartCardByte
- •Reg - Registration Block
- •ResetCanTimer
- •Rs/sr : Event Memory Latches
- •RtuReadRegs
- •RtuReadParas
- •RtuReadInputRegs
- •RtuPresetRegs
- •RtuPresetParas
- •RtuMasterReply
- •RtuMasterStatus
- •Runtime
- •Scheduleevent
- •SetConverterDenominator
- •SetConverterNumerator
- •SetCtnSync
- •SetRamLength
- •SetUserId
- •Shiftlr
- •SignedBottomWord
- •SignedTopWord
- •Sin - Sine Function
- •ISo/fSo : Scale-Offset
- •Splitter
- •SpGateway - ctNet to fieldbus gateway
- •Sq1int/ Sq2int - Square Interpolation
- •Sqr - Square Root Function
- •Sramp - s-Ramp Profile Generator Function
- •Ssramp - s-Ramp Profile Generator Function
- •Stuff2 / stuff4 / stuff8 - Bit Stuffers
- •Tan - Tan Function
- •Tcyclic - Cyclic Timer
- •ToffRet
- •Trl - Triggered Latch Function
- •UnAssram
- •UnsignedBottomWord
- •UnsignedTopWord
- •UserToApcAcceleration
- •UserToApcPosition
- •UserToApcVelocity
- •Vel2pos - Velocity Profile Integrator
- •Writenet
- •Writenetb
- •Wrnet - ctNet Write Command
- •Wrnetb - ctNet Block Parameter Write Command
- •WriteReadOnlyBit
- •WriteSmartCardByte
- •Xor4 - Four-input xor Gate
- •SmartCard Example Program
- •Supported Languages
- •Variables, Parameters, Constants and Data Types
- •Variables
- •Bit Access For Variables
- •Predefined Variables
- •Parameters
- •Plc Registers
- •Data Types
- •Constants
- •Numbers
- •Variable and Parameter Scope
- •Aliases
- •Program Structure
- •Subroutines
- •User-Defined Function Blocks (udfBs)
- •Calling udfBs
- •Udfb Argument Restrictions
- •Udfb Instances
- •Udfb Code Sections
- •Dpl (Drive Programming Language) Reference
- •Directives
- •Operators
- •Conditional Operators
- •Comments
- •Constructs
- •Variable Assignment
- •If ... Then
- •For Loop
- •Function Block Call
- •Ld/ fb Elements
- •Ld/ fb Coil Types
- •Ld/ fb Contact Types
- •Ld/ fb Order of Execution
- •Qld (Quick Ladder Diagram) Reference
- •Qld Elements
- •Qld Coil Types
- •Qld Contact Types
- •Advanced Position Controller
- •Programming Hints and Tips
- •Copyright
Udfb Code Sections
The code within a UDFB is split into two sections:
Theinitialcode section
Thebodycode section
The initial section is used for declaring and initialising any local variables that the UDFB will use. The initial section is run for every instance of a UDFB at start-up or reset (this occurs prior to the DPL Initial task).
Note: |
The input and output arguments of a UDFB are not available in the initial section. |
The body section is where the actual code of the function block exists - the part that does the work of the function. Input and output arguments only have context within the body section.
The two sections are separated by the keyword FBbody. Initial code goes before this keyword, body code after.
Remember that the actual code can consist of a mixture of DPL, LD/FBD diagrams, and LD diagrams.
Below is an example of a simple UDFB that adds two numbers and scales by a pre-defined amount (0.5):
See Also
User-Defined Function Blocks (UDFBs)
________________________________________________________________________________
Dpl (Drive Programming Language) Reference
This section is the reference for the DPL programming language. Follow the links below to find detailed information about DPL.
Variables, Parameters, Constants and Data Types
Program Structure
Directives
Operators
Conditional Operators
Comments
Constructs
See Also
Reference
Developing Applications
________________________________________________________________________________
Directives
Directives are instructions to the DPL compiler which control the way code is generated for the user program to be downloaded to a target. The available directives are shown in the following table.
Some directives are entered via the Node Properties dialog in the Configuration Editor and other are typed directly into the DPL view.
Some directives are entered via the Node Properties dialog in the Configuration Editor and other are typed directly into the DPL view.
See Also
Program Structure
Nodes
Developing Applications
Data Types
DPL (Drive Programming Language) Reference
________________________________________________________________________________
Operators
The complete list of DPL operators showing precedence and associativity, in order of precedence, is:
! - Bit (boolean) value invert
This operand inverts the least significant bit and sets all other bits to zero.
For example, if value% is 100100 then !value% will give a result of 000001.
!(value, bitfield_size) - Bit field invert
This operand inverts the least significant bits of the given value and converts all other bits to zero. The number of least significant bits that are to be converted is specified in the bit-field size value.
For example:
Result% = !(value%, 3)
If value% is 100100 binary then the result will be 000011 binary.
See Also
Conditional Operators
DPL (Drive Programming Language) Reference
________________________________________________________________________________
Conditional Operators
These operators can be used in conditional expressions in IF statements and WHILE loops. The complete list of conditional operators showing precedence and associativity, in order of precedence, is:
See Also
Operators
DPL (Drive Programming Language) Reference
________________________________________________________________________________