iansmiler,
I wanted to give you an other way to do what you asked. I like kittydog42 I did not know which analog module, so I chose the F0-08ADH-2 8-Ch. Analog Voltage Input. This module uses two Vmems for each analog channel.
Copy and paste the text below into notepad, save it open a new instance of Direct Soft, click on file, import, program, to convert the text to a program.
PLC 05
// Rung 1
// Address 0
#BEGIN COMMENT
"http://www.plctalk.net/qanda/showthread.php?t=58270"
""
"Hello all Hardware: DL05, Analog input card, 0 - 10VDC Ultrasonic sensor."
""
"Outcome I want to achieve: upon activation of XO I want to take a snapshot of what the "
"sensor is reading every let's say 20ms and move them into an array of data registers (How "
"I wish I was doing this with logix5000 :/ ), X0 will stay active for no more than 2 seconds "
"and so I do not need a big array."
""
"Is there any easy way to achieve this?"
""
#END
ISG S0
// Rung 2
// Address 2
#BEGIN COMMENT
"This rung is only scaned during the first scan"
""
"It sets the values for a F0-08ADH-2 8-Ch.Analog Voltage Input module."
""
"channel1 is in V2000 &V2001 channel 2 is in V2002 & V2003 ect"
#END
ANLGIN K0 K1 K8 K0 V2000
// Rung 3
// Address 40
#BEGIN COMMENT
"The address V3000 is converted by the LDA instruction to binary and then loaded into "
"V2020"
""
"After the values are stored we jump to the main"
#END
LDA O3000
OUT V2020
JMP S1
// Rung 4
// Address 43
SG S1
// Rung 5
// Address 45
#BEGIN COMMENT
"This is the 20 Ms timer rung"
#END
STR X0
ANDN T0
TMRF T0 K2
// Rung 6
// Address 50
#BEGIN COMMENT
"This counter resets after it reaches 101 counts. This will allow for the 2 second period and "
"20 ms sampling rate mentioned by the OP "
#END
STR T0
STR CT0
CNT CT0 K101
// Rung 7
// Address 55
#BEGIN COMMENT
"We take the counter value and multiply by two to allow for the analog value being spread "
"over two Vmems."
""
"Then we convert the value to binary to allow it to be used in addressing."
""
"Finally adding the binary value of the base storage address (this was done in the ISG "
"load values)"
#END
STR T0
LD CTA0
MUL K2
BIN
ADDB V2020
OUT V2021
// Rung 8
// Address 61
#BEGIN COMMENT
"This is the rung where the values in V2000 and V2001 (hence the K2) are moved into the "
"address directed by the pointer"
""
"The values are stored as doubles in V3000 to V3310 (200 addreses)"
#END
STR T0
LD K2
LDA O2000
MOV P2021
// Rung 9
// Address 66
END
// Rung 10
// Address 67
NOP
#BEGIN ELEMENT_DOC
"S0","","","load values"
"S1","","","main"
"T0","","","20ms timer"
"V2020","","","base storage address in binary"
"V2021","","","base storage address added to the counter "
"V3000","","","storage register"
"V3001","","","storage register"
"V3002","","","storage register"
"V3003","","","storage register"
"V3004","","","storage register"
"V3005","","","storage register"
"V3006","","","storage register"
"V3007","","","storage register"
"V3010","","","storage register"
"V3011","","","storage register"
"V3012","","","storage register"
"V3013","","","storage register"
"V3014","","","storage register"
"V3015","","","storage register"
"V3016","","","storage register"
"V3017","","","storage register"
"V3020","","","storage register"
"V3021","","","storage register"
"V3022","","","storage register"
"V3023","","","storage register"
"V3024","","","storage register"
"V3025","","","storage register"
"V3026","","","storage register"
"V3027","","","storage register"
"V3030","","","storage register"
"V3031","","","storage register"
"V3032","","","storage register"
"V3033","","","storage register"
"V3034","","","storage register"
"V3035","","","storage register"
"V3036","","","storage register"
"V3037","","","storage register"
"V3040","","","storage register"
"V3041","","","storage register"
"V3042","","","storage register"
"V3043","","","storage register"
"V3044","","","storage register"
"V3045","","","storage register"
"V3046","","","storage register"
"V3047","","","storage register"
"V3050","","","storage register"
"V3051","","","storage register"
"V3052","","","storage register"
"V3053","","","storage register"
"V3054","","","storage register"
"V3055","","","storage register"
"V3056","","","storage register"
"V3057","","","storage register"
"V3060","","","storage register"
"V3061","","","storage register"
"V3062","","","storage register"
"V3063","","","storage register"
"V3064","","","storage register"
"V3065","","","storage register"
"V3066","","","storage register"
"V3067","","","storage register"
"V3070","","","storage register"
"V3071","","","storage register"
"V3072","","","storage register"
"V3073","","","storage register"
"V3074","","","storage register"
"V3075","","","storage register"
"V3076","","","storage register"
"V3077","","","storage register"
"V3100","","","storage register"
"V3101","","","storage register"
"V3102","","","storage register"
"V3103","","","storage register"
"V3104","","","storage register"
"V3105","","","storage register"
"V3106","","","storage register"
"V3107","","","storage register"
"V3110","","","storage register"
"V3111","","","storage register"
"V3112","","","storage register"
"V3113","","","storage register"
"V3114","","","storage register"
"V3115","","","storage register"
"V3116","","","storage register"
"V3117","","","storage register"
"V3120","","","storage register"
"V3121","","","storage register"
"V3122","","","storage register"
"V3123","","","storage register"
"V3124","","","storage register"
"V3125","","","storage register"
"V3126","","","storage register"
"V3127","","","storage register"
"V3130","","","storage register"
"V3131","","","storage register"
"V3132","","","storage register"
"V3133","","","storage register"
"V3134","","","storage register"
"V3135","","","storage register"
"V3136","","","storage register"
"V3137","","","storage register"
"V3140","","","storage register"
"V3141","","","storage register"
"V3142","","","storage register"
"V3143","","","storage register"
"V3144","","","storage register"
"V3145","","","storage register"
"V3146","","","storage register"
"V3147","","","storage register"
"V3150","","","storage register"
"V3151","","","storage register"
"V3152","","","storage register"
"V3153","","","storage register"
"V3154","","","storage register"
"V3155","","","storage register"
"V3156","","","storage register"
"V3157","","","storage register"
"V3160","","","storage register"
"V3161","","","storage register"
"V3162","","","storage register"
"V3163","","","storage register"
"V3164","","","storage register"
"V3165","","","storage register"
"V3166","","","storage register"
"V3167","","","storage register"
"V3170","","","storage register"
"V3171","","","storage register"
"V3172","","","storage register"
"V3173","","","storage register"
"V3174","","","storage register"
"V3175","","","storage register"
"V3176","","","storage register"
"V3177","","","storage register"
"V3200","","","storage register"
"V3201","","","storage register"
"V3202","","","storage register"
"V3203","","","storage register"
"V3204","","","storage register"
"V3205","","","storage register"
"V3206","","","storage register"
"V3207","","","storage register"
"V3210","","","storage register"
"V3211","","","storage register"
"V3212","","","storage register"
"V3213","","","storage register"
"V3214","","","storage register"
"V3215","","","storage register"
"V3216","","","storage register"
"V3217","","","storage register"
"V3220","","","storage register"
"V3221","","","storage register"
"V3222","","","storage register"
"V3223","","","storage register"
"V3224","","","storage register"
"V3225","","","storage register"
"V3226","","","storage register"
"V3227","","","storage register"
"V3230","","","storage register"
"V3231","","","storage register"
"V3232","","","storage register"
"V3233","","","storage register"
"V3234","","","storage register"
"V3235","","","storage register"
"V3236","","","storage register"
"V3237","","","storage register"
"V3240","","","storage register"
"V3241","","","storage register"
"V3242","","","storage register"
"V3243","","","storage register"
"V3244","","","storage register"
"V3245","","","storage register"
"V3246","","","storage register"
"V3247","","","storage register"
"V3250","","","storage register"
"V3251","","","storage register"
"V3252","","","storage register"
"V3253","","","storage register"
"V3254","","","storage register"
"V3255","","","storage register"
"V3256","","","storage register"
"V3257","","","storage register"
"V3260","","","storage register"
"V3261","","","storage register"
"V3262","","","storage register"
"V3263","","","storage register"
"V3264","","","storage register"
"V3265","","","storage register"
"V3266","","","storage register"
"V3267","","","storage register"
"V3270","","","storage register"
"V3271","","","storage register"
"V3272","","","storage register"
"V3273","","","storage register"
"V3274","","","storage register"
"V3275","","","storage register"
"V3276","","","storage register"
"V3277","","","storage register"
"V3300","","","storage register"
"V3301","","","storage register"
"V3302","","","storage register"
"V3303","","","storage register"
"V3304","","","storage register"
"V3305","","","storage register"
"V3306","","","storage register"
"V3307","","","storage register"
"V3310","","","storage register"
"P2021","","","The ""P"" indicates pointer The value in this address is where the pointer directs the data to be stored"
#END