On 07/24/2018 07:18 PM, 김성빈 wrote:
> Hi all,
>
> I would like to output an interlock signal if any of the temperature values exceeds the my set value.
>
> I am thinking to make it in the following way.
> -----------------------------------------------------------------------------------
> Read temperature value(ai)->Temperature interlock Calc->Interlock signal(bo)
> -----------------------------------------------------------------------------------
> The problem is that I do not know how to calculate because there are many read temperature value.
>
> The calculation record consists of 12 input links (INPA, INPB, ... INPL), but the number of my temperature values is over 70.
>
> How do I configure a calcout record?
>
> Please let me know if you have a better idea to configure the temperature interlock.
There are a number of ways to accomplish this. I would use a calcout record
for each temperature measurement. It is simpler to consolidate the binary result.
Something like the following (untested) might be useful as a starting point.
> record(ao, "limit") {
> }
>
> record(calcout, "temp:aggreg") {
> field(INPA, "temp1calc_ MSI CP")
> field(INPB, "temp2calc_ MSI CP")
> field(INPC, "temp3calc_ MSI CP")
> field(INPD, "temp4calc_ MSI CP")
> # ... repeat up to temp11calc
> field(INPL, "temp:aggregA MSI CP")
> field(CALC, "A&B&C&D")
> field(OUT , "temp:ok MSI")
> field(IVOA, "Set output to IVOV")
> field(IVOV, "2") # differentiate INVALID (eg. sensor fault) from limit violation
> }
>
> record(calcout, "temp:aggregA") {
> field(INPA, "temp12calc_ MSI CP")
> field(INPB, "temp13calc_ MSI CP")
> field(INPC, "temp14calc_ MSI CP")
> field(INPD, "temp15calc_ MSI CP")
> }
>
> record(mbbi, "temp:ok") {
> field(ZRST, "Alarm")
> field(ZRSV, "MAJOR")
> field(ZRVL, "0")
> field(ONST, "Normal")
> field(ONVL, "0")
> field(TWST, "Fault")
> field(TWSV, "INVALID")
> field(ONVL, "0")
> }
>
> # repeat for each measurements
>
> record(ai, "temp$(N)") {
> field(FLNK, "temp$(N)calc_")
> }
>
> record(calcout, "temp$(N)calc_") {
> field(INPA, "temp$(N) MSI")
> field(INPB, "limit MSI")
> field(CALC, "A<B") # normally 1 (closed)
> }
>
- References:
- Questions about building a database for temperature interlock 김성빈
- Navigate by Date:
- Prev:
Questions about building a database for temperature interlock 김성빈
- Next:
IOC Crash with No Exception Generated Matt Rippa via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Questions about building a database for temperature interlock 김성빈
- Next:
IOC Crash with No Exception Generated Matt Rippa via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
|