# Proposal for new function under engineering/conversion

**URL:** <https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541>\
**Category:** oscat.lib fuer TwinCAT/CoDeSys\
**Created:** [2. April 2013 um 22:20 UTC](https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541 "2013-04-02T22:20:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mbruck](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/mbruck/32/8_2.png) [@mbruck](https://oscat.discourse.group/u/mbruck)\
**Post date:** [2. April 2013 um 22:20 UTC](https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541/1 "2013-04-02T22:20:04Z")

</div>

Hi!

I have using this funcion in Arduinos software:  
[http://arduino.cc/en/Reference/map](http://arduino.cc/en/Reference/map)

I believe this would be valuable function in Oscat basic library under engineering/conversion category. 🙂

Regards !

Mladen Bruck

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [5. April 2013 um 10:23 UTC](https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541/2 "2013-04-05T10:23:48Z")

</div>

Hi,

as they do give the mathematics, it isn`t too hard to do the coding. I attached the function for CoDeSys2.

you have to call the function like this:

millivolts := map(milliamps,4,20,0,10000); (\* Converts 4..20mA into 0..10 Volt \*)

Regards  
Alex

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![shooter](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@shooter](https://oscat.discourse.group/u/shooter)\
**Post date:** [10. April 2013 um 14:00 UTC](https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541/3 "2013-04-10T14:00:04Z")

</div>

nachteil von alex ist integer, ich wurde vorschlagen um es in real zu tun. dan gibts auch kein probleme mit negativ werte.

---

<div class="post-metadata">

**Author:** ![mbruck](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/mbruck/32/8_2.png) [@mbruck](https://oscat.discourse.group/u/mbruck)\
**Post date:** [10. April 2013 um 20:35 UTC](https://oscat.discourse.group/t/proposal-for-new-function-under-engineering-conversion/1541/4 "2013-04-10T20:35:50Z")

</div>

Hi Alex !

Thank you for code…

I meant it vould be valuable for including to library. However, I noticed code later, and I have writen function block since I don’t know how to use function in ladder yet. ☹

But, I declared all variables as REAL like so:

```auto

FUNCTION_BLOCK MAP
VAR_INPUT
	Start:BOOL;
	In:REAL;
	fromLow:REAL;
	fromHigh:REAL;
	toLow:REAL;
	toHigh:REAL;
END_VAR
VAR_OUTPUT
	End:BOOL;
	Out:REAL;
END_VAR
VAR
END_VAR

Funcion body>
	 Out := (In-fromLow) * (toHigh - toLow) / ((fromHigh - fromLow) + toLow) ;

```

Is this would be problem ?
