tags:

views:

27

answers:

0

Hello. Upfront, I do not have much programming experience. If you reply, please include detailed code comments. I need to import into Python a 512 packed floats array described by the programmer as...

I pack the profile data into an array of floats (32 bit) which I store in the tag. You would see this as an array of 4*512 = 2048 Bytes, since the OPC server has no information on what type of data stores in an array-tag. Only the size is known, therefore you will get it as bytes. If you can easily address it as an array of floats (in C this is just a typecast of pointer), you can give it a try. The data has byte alignment and it is stored in little endian format (Intel).

My Pythom code attempt...

ProfileArray = opc.read('QMS.Readings.TABRawProfileValues.0.DataArray')
# print result was: 
(<read-write buffer ptr 0x03610D00, size 2048 at 0x03610CE0>, 'Good', '09/01/10 22:07:19')

ProfileArrayFloatsPacked = open('ProfileArrayFloatsPacked.txt', 'w')
print >> ProfileArrayFloatsPacked, ProfileArray[0] 
# writes 512 packed floats to ProfileArrayFloatsPacked.txt

ProfileArrayFloatsPacked.close()

array_of_floats = array.array('f') # creates an empty array of type float

fp = open('ProfileArrayFloatsPacked.txt', 'rb') 
# opens ProfileArrayFloatsPacked.txt in binary mode ('rb') as fp

array_of_floats.fromfile(fp,512) 
# reads/unpacks 512 floats from fp into the array array_of_floats

logfile = open('logfile.txt', 'a')
print >> logfile, array_of_floats,","
fp.close()
logfile.close()

Below is the contents of logfile.txt. Notice float0 value is text array('f' and that there should not be any ([)] in first float and last float. I think my unpack code is off by one, or shifted (the last value does not line up with my column header). I think I might need to use Python's ctype, but I do not understand the help docs. Any direction would be greatly appreciated!

float0 array('f' float1 [0.031583152711391449 float2 3.13E-02 float3 3.08E-02 float4 0.031223474 float5 3.09E-02 float6 3.15E-02 float7 3.17E-02 float8 3.18E-02 float9 3.14E-02 float10 3.19E-02 float11 3.13E-02 float12 3.12E-02 float13 3.17E-02 float14 3.19E-02 float15 3.19E-02 float16 3.24E-02 float17 3.23E-02 float18 3.18E-02 float19 3.21E-02 float20 3.15E-02 float21 3.20E-02 float22 3.23E-02 float23 3.26E-02 float24 3.21E-02 float25 3.24E-02 float26 3.21E-02 float27 3.24E-02 float28 3.26E-02 float29 3.29E-02 float30 3.20E-02 float31 3.25E-02 float32 3.25E-02 float33 3.27E-02 float34 3.28E-02 float35 3.28E-02 float36 3.24E-02 float37 3.26E-02 float38 3.25E-02 float39 3.27E-02 float40 3.23E-02 float41 3.25E-02 float42 3.25E-02 float43 3.26E-02 float44 3.29E-02 float45 3.25E-02 float46 3.35E-02 float47 3.29E-02 float48 3.29E-02 float49 3.30E-02 float50 3.34E-02 float51 3.37E-02 float52 3.27E-02 float53 3.33E-02 float54 3.31E-02 float55 3.31E-02 float56 3.34E-02 float57 3.35E-02 float58 3.31E-02 float59 3.36E-02 float60 3.32E-02 float61 3.33E-02 float62 3.34E-02 float63 6.83E-33 float64 7.49E-31 float65 6.80E-33 float66 -1.36E+19 float67 3.37E-02 float68 3.35E-02 float69 3.40E-02 float70 3.32E-02 float71 3.35E-02 float72 3.36E-02 float73 3.34E-02 float74 6.80E-33 float75 2.76E-33 float76 9.71E-34 float77 5.40E-33 float78 9.76E-32 float79 4.81E-31 float80 2.75E-32 float81 4.77E-31 float82 5.61E-33 float83 2.31E-31 float84 4.57E-32 float85 4.46E-32 float86 1.68E-31 float87 3.11E-32 float88 1.36E-30 float89 -8.95E-15 float90 8.21E+01 float91 2.80E+03 float92 2.69E-12 float93 -3.55E-10 float94 4.19E+21 float95 1.66E+00 float96 -4.90E-12 float97 1.18E-01 float98 6.80E-33 float99 1.98E+08 float100 9.14E+26 float101 -4.10E-17 float102 -4.96E+07 float103 5.71E+25 float104 2.44E-24 float105 -1.68E-13 float106 3.56E-35 float107 1.39E-37 float108 1.36E+19 float109 1.27E+10 float110 -6.56E-16 float111 -2.28E-33 float112 1.46E-31 float113 -3.47E-38 float114 1.21E+04 float115 8.89E-36 float116 -1.30E+13 float117 1.46E+28 float118 5.20E+13 float119 1.49E-28 float120 5.08E+10 float121 -9.10E-33 float122 1.43E+25 float123 -9.32E-30 float124 1.00E-20 float125 -5.69E-34 float126 1.94E+05 float127 -1.89E+02 float128 1.53E+34 float129 6.88E-10 float130 -1.30E+13 float131 -3.17E+09 float132 1.68E-13 float133 -7.21E-04 float134 -2.45E+35 float135 -3.83E+33 float136 3.73E-29 float137 -6.56E-16 float138 2.62E-15 float139 -6.28E+37 float140 3.17E+09 float141 1.89E+02 float142 2.28E-33 float143 -2.50E-21 float144 -1.94E+05 float145 5.97E-28 float146 1.46E+28 float147 5.69E-34 float148 5.08E+10 float149 -1.05E-14 float150 -5.83E-31 float151 9.55E-27 float152 4.40E-08 float153 2.56E-18 float154 -2.88E-03 float155 7.93E+08 float156 1.33E+16 float157 3.49E+21 float158 -3.91E-23 float159 9.14E+26 float160 4.84E+04 float161 -7.39E-01 float162 2.44E-24 float163 -3.25E+12 float164 2.51E+38 float165 -2.75E-09 float166 2.44E-24 float167 3.41E+18 float168 -6.88E-10 float169 9.55E-27 float170 5.56E-37 float171 5.71E+25 float172 1.76E-07 float173 -3.91E-23 float174 8.32E+14 float175 -2.75E-09 float176 -9.82E+35 float177 -1.40E+22 float178 3.25E+12 float179 -1.33E+16 float180 5.08E+10 float181 1.94E+05 float182 -4.40E-08 float183 4.51E-05 float184 -2.88E-03 float185 -5.85E+28 float186 1.10E-08 float187 -1.46E+28 float188 -7.39E-01 float189 -7.39E-01 float190 -7.56E+02 float191 3.25E+12 float192 -3.91E-23 float193 -2.44E-24 float194 -2.08E+14 float195 1.68E-13 float196 2.28E-33 float197 -3.10E+06 float198 -2.34E+29 float199 -2.45E+35 float200 -9.10E-33 float201 5.08E+10 float202 1.33E+16 float203 -3.66E+27 float204 -9.55E-27 float205 -1.76E-07 float206 5.20E+13 float207 -1.18E+01 float208 -2.34E+29 float209 5.85E+28 float210 1.13E-05 float211 8.32E+14 float212 1.76E-07 float213 -3.66E+27 float214 9.55E-27 float215 2.33E-30 float216 1.49E-28 float217 -1.57E+37 float218 -5.20E+13 float219 -1.13E-05 float220 -1.39E-37 float221 -2.22E-36 float222 -1.42E-34 float223 5.99E+31 float224 -1.40E+22 float225 -4.40E-08 float226 1.46E-31 float227 -1.56E-22 float228 2.51E+38 float229 -4.20E-14 float230 -7.93E+08 float231 -3.33E+15 float232 -4.00E-20 float233 3.75E+30 float234 1.15E-02 float235 2.28E-33 float236 1.98E+08 float237 -4.10E-17 float238 4.40E-08 float239 -2.82E-06 float240 2.50E-21 float241 -3.73E-29 float242 1.53E-25 float243 -7.93E+08 float244 -2.51E+38 float245 3.91E-23 float246 9.14E+26 float247 -1.49E-28 float248 4.96E+07 float249 -1.36E+19 float250 2.39E-27 float251 1.64E-16 float252 6.72E-13 float253 -6.11E-25 float254 8.32E+14 float255 -1.98E+08 float256 -1.05E-14 float257 -1.94E+05 float258 -3.47E-38 float259 2.33E-30 float260 -3.91E-23 float261 2.45E+35 float262 -3.57E+24 float263 1.98E+08 float264 -5.69E-34 float265 -2.50E-21 float266 -8.32E+14 float267 -8.72E+20 float268 -2.50E-21 float269 1.00E-20 float270 -1.80E-04 float271 -2.39E-27 float272 1.03E-17 float273 3.33E+15 float274 -1.05E-14 float275 -3.93E+36 float276 9.32E-30 float277 5.99E+31 float278 -4.51E-05 float279 1.50E+31 float280 1.18E+01 float281 1.57E+37 float282 -3.49E+21 float283 1.03E-17 float284 -1.68E-13 float285 8.93E+23 float286 1.72E-10 float287 0.046165321 float288 2.03E+11 float289 1.53E+34 float290 1.05E-14 float291 7.56E+02 float292 4.20E-14 float293 8.12E+11 float294 3.56E-35 float295 -1.42E-34 float296 -3.64E-32 float297 2.34E+29 float298 -1.68E-13 float299 -1.07E-11 float300 -9.36E+29 float301 5.71E+25 float302 -9.10E-33 float303 -3.56E-35 float304 3.56E-35 float305 5.83E-31 float306 3.63E-02 float307 3.61E-02 float308 3.68E-02 float309 3.56E-02 float310 3.64E-02 float311 3.61E-02 float312 3.68E-02 float313 3.61E-02 float314 3.59E-02 float315 3.58E-02 float316 3.63E-02 float317 3.60E-02 float318 3.58E-02 float319 3.65E-02 float320 3.60E-02 float321 3.59E-02 float322 4.69E-26 float323 3.36E-26 float324 1.39E-27 float325 7.40E-27 float326 1.64E-28 float327 1.56E-27 float328 5.86E-28 float329 5.83E-28 float330 3.36E-28 float331 2.94E-28 float332 1.10E-26 float333 1.03E-25 float334 9.54E-27 float335 4.12E-26 float336 5.74E-27 float337 4.31E-28 float338 1.39E-27 float339 1.58E-27 float340 4.37E-26 float341 1.02E-27 float342 1.24E-26 float343 7.90E-28 float344 1.32E-27 float345 1.68E-28 float346 1.64E-27 float347 5.93E-27 float348 6.79E-29 float349 9.84E-27 float350 6.81E-33 float351 1.58E+34 float352 -4.37E-18 float353 1.70E+32 float354 -4.74E-22 float355 4.70E-04 float356 -4.85E+32 float357 5.35E-12 float358 -1.36E+06 float359 -8.17E-19 float360 5.55E-11 float361 -1.62E-15 float362 3.01E+33 float363 1.34E+26 float364 -1.45E+12 float365 3.32E-18 float366 4.04E+32 float367 1.16E-09 float368 6.41E-25 float369 2.38E+37 float370 -4.44E-07 float371 1.16E-05 float372 7.94E+08 float373 -1.26E-20 float374 -1.63E-10 float375 4.84E+14 float376 1.97E+21 float377 -1.26E-29 float378 4.87E-09 float379 7.64E+24 float380 4.43E-28 float381 -4.88E+29 float382 5.83E+24 float383 1.50E-16 float384 1.60E+09 float385 3.49E-06 float386 -2.61E+06 float387 -3.77E-37 float388 -1.16E-11 float389 3.09E+03 float390 4.67E+32 float391 -7.50E+16 float392 4.97E+36 float393 -9.91E-19 float394 -1.33E+31 float395 2.65E+12 float396 -7.43E+08 float397 2.50E+30 float398 3.12E-34 float399 -1.34E-19 float400 1.18E+36 float401 -1.05E+32 float402 -5.76E-10 float403 1.76E+07 float404 -1.47E+21 float405 1.76E-07 float406 -7.56E+02 float407 1.07E-11 float408 -6.41E-19 float409 3.10E+06 float410 1.05E-14 float411 1.68E-13 float412 5.69E-34 float413 9.36E+29 float414 -6.41E-19 float415 1.39E+22 float416 -1.05E-14 float417 7.21E-04 float418 -5.97E-28 float419 -1.50E+31 float420 3.37E-02 float421 6.82E-33 float422 2.30E-31 float423 6.77E-32 float424 4.60E-30 float425 6.03E-33 float426 2.75E-32 float427 2.73E-30 float428 3.23E-31 float429 1.27E-33 float430 3.41E-32 float431 1.40E-30 float432 1.04E+04 float433 5.19E+05 float434 4.62E-02 float435 -1.68E-13 float436 -1.36E+19 float437 -3.49E+21 float438 3.33E+15 float439 3.37E-02 float440 6.82E-33 float441 4.56E-32 float442 4.49E-33 float443 3.00E-34 float444 1.15E-31 float445 3.90E-33 float446 7.25E-31 float447 5.87E+21 float448 8.89E-36 float449 3.37E-02 float450 3.33E-02 float451 6.83E-33 float452 9.83E-31 float453 2.65E-31 float454 7.32E+06 float455 6.85E+28 float456 -2.01E+26 float457 6.75E-03 float458 -1.02E-17 float459 9.54E-27 float460 1.94E+05 float461 3.49E+21 float462 -9.77E-24 float463 2.13E+17 float464 1.98E+08 float465 1.57E+37 float466 -2.82E-06 float467 2.50E-21 float468 6.25E-22 float469 -2.62E-15 float470 8.72E+20 float471 -4.96E+07 float472 -6.56E-16 float473 2.51E+38 float474 2.56E-18 float475 -1.27E+10 float476 5.07E+10 float477 -2.22E-36 float478 1.39E-37 float479 -5.20E+13 float480 -1.89E+02 float481 -1.49E-28 float482 -2.50E-21 float483 -1.42E-34 float484 -1.36E+19 float485 5.85E+28 float486 -1.80E-04 float487 3.56E-35 float488 -2.13E+17 float489 -1.13E-05 float490 -1.42E-34 float491 8.51E+17 float492 1.57E+37 float493 -9.32E-30 float494 -3.64E-32 float495 -2.50E-21 float496 2.51E+38 float497 -9.81E+35 float498 -3.93E+36 float499 9.36E+29 float500 -9.81E+35 float501 -3.66E+27 float502 9.14E+26 float503 8.31E+14 float504 5.69E-34 float505 1.46E-31 float506 1.07E-11 float507 -3.47E-38 float508 -4.95E+07 float509 -3.25E+12 float510 -3.83E+33 float511 -6.56E-16 -13299883775623168.0])