Rockwell Automation Publication 1789-UM002K-EN-P - January 2015
7
Table of Contents
Example 3: SoftLogix Controller to a Bar Code Reader . . . . . . . . . . . . . . 90
Connect the ASCII Device to the Controller . . . . . . . . . . . . . . . . . . . 90
User Mode Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
ASCII Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Configure and Use Simulated I/O
Configure Your System for a 1789-SIM Module . . . . . . . . . . . . . . . . . . . . 93
Step 1: Create the 1789-SIM Module
in the SoftLogix Chassis Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Step 2: Configure the 1789-SIM module as Part of the Project . . . 97
Map I/O Data to the 1789-SIM Module . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Toggle Inputs and Monitor Outputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Example: Move Application Data into the 1789-SIM Tags . . . . . . . . . 103
Configure Your System to Execute an External Routine . . . . . . . . . . . . 105
Add an External Routine to the Controller Organizer . . . . . . . . . . . . . . 106
How the Project Stores and Downloads an External Routine . . . . 111
Jump to External Routine (JXR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Arithmetic Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Fault Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Considerations For External Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
How the SoftLogix Controller Executes External Routines . . . . . . . . . 116
How the Project Stores and Downloads an External Routine . . . . 117
Create Synchronous, Single-threaded External Routines. . . . . . . . . . . . 117
Create a Visual Studio Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
RA_ExternalRoutines.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
InlineExample.cpp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
InlineExample.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Create an HTML Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Add Version Information to an External Routine DLL . . . . . . . . . . . . . 128
Build and Download External Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Update an Existing External Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Create Multi-threaded External Routines . . . . . . . . . . . . . . . . . . . . . . . . . 130
Sounds.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Thread Priorities in a Multithreaded External Routine DLL . . . . 135