EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20212022  2023  2024  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: AW: combining long strings
From: "Sintschuk, Michael via Tech-talk" <tech-talk at aps.anl.gov>
To: "Lang, Keenan C." <klang at anl.gov>, "Johnson, Andrew N." <anj at anl.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 4 Feb 2021 10:14:45 +0000

Hello Andrew, Keenan,

 

I pulled now the recent luascript-master and rebuild the module/IOC. Now I get the following error:

 

Calling return table.pack(string.byte(AA..CC, 1, -1)) resulted in error: 1: attempt to concatenate a nil value (global 'AA')

 

I think, it tries to concatenate the index-value of the mbbo-record and not the string-value. If I write my template like this:

 

record(luascript,"$(exp):FilePath") {

  field(INAA,"$(exp):PathMenu.ZRST CP")

  field(INCC,"$(exp):SampleMenu.ZRST CP")

  field(CODE,"return table.pack(string.byte(AA..CC, 1, -1))")

  field(OUT,"$(cam):$(format)1:FilePath PP")}

 

It concatenates and puts the string correctly, without errors. But this way I always look at the same string…

 

Von: Lang, Keenan C. <klang at anl.gov>
Gesendet: Donnerstag, 4. Februar 2021 01:31
An: Johnson, Andrew N. <anj at anl.gov>
Cc: Sintschuk, Michael <michael.sintschuk at bam.de>; tech-talk at aps.anl.gov
Betreff: Re: combining long strings

 

Andrew,

 

I wasn't before, but I have now changed the errLog function to also write out using errlogPrintf.

 

 

Keenan


From: Johnson, Andrew N. <anj at anl.gov>
Sent: Wednesday, February 3, 2021 12:33 PM
To: Lang, Keenan C. <
klang at anl.gov>
Cc: Sintschuk, Michael <
michael.sintschuk at bam.de>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: combining long strings

 

Hi Keenan,

 

On Feb 3, 2021, at 12:05 PM, Lang, Keenan C. <klang at anl.gov> wrote:

 

The ERR field has an error in it, so the record did try to process, it just never successfully completed. I haven't seen that error before, but it appears that it points to some sort of issue with invalid memory access during the code execution. I'm trying to track down what went wrong.

 

Thanks for correcting me, I didn’t notice that PACT was still 1.

 

Does it also log lua errors using errlogPrintf() or an equivalent? I would want the IOC's error log to have a record of this kind of problem, and to not have to monitor the ERR fields of all the lua records.

 

- Andrew

 



From: Johnson, Andrew N. <anj at anl.gov>
Sent: Wednesday, February 3, 2021 12:01 PM
To: Sintschuk, Michael <
michael.sintschuk at bam.de>
Cc: Lang, Keenan C. <
klang at anl.gov>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: combining long strings

 

Hi Michael,

 

On Feb 3, 2021, at 8:05 AM, Sintschuk, Michael via Tech-talk <tech-talk at aps.anl.gov> wrote:

 

I like the luascript script solution. But unfortunately it won’t work for me. The record is always in SEVR: invalid mode and there is no input to the AA, BB … fields:

 

...

PINI: NO            PJ: 0               PJJ: 0x88d770       PPN: (nil)         

PPNR: (nil)         PREC: 0             PRIO: LOW           PROC: 0             

PSVL:               PUTF: 0             PVAL: 0             RDES: 0x80c5f0     

RELO: Every New File                    RPRO: 0             RPVT: 0x88d570     

RSET: 0x7f8e4c1d9e40                    SCAN: Passive       SDIS:CONSTANT      

SEVR: INVALID       SPVT: (nil)         STAT: UDF           STATE: 0x88d7a8    

SVAL:               SYNC: Sync          TIME: <undefined>   TPRO: 0            

TSE: 0              TSEL:CONSTANT       UDF: 1              UDFS: INVALID      

VAL: 0              WAIT: NoWait       

epics>

 

Did I missed something with the record settings?

 

Your record doesn’t appear to have been processed at all yet (STAT is UDF, UDF is 1 and TIME is <undefined>). Does processing it change the result? You can have that happen automatically when the IOC boots by setting PINI to YES, or manually with this iocsh command:

 

dbpf Topo:FilePath.PROC 1

 

- Andrew

 

-- 

Complexity comes for free, simplicity you have to work for.

 

-- 

Complexity comes for free, simplicity you have to work for.

 


Replies:
Re: combining long strings Lang, Keenan C. via Tech-talk
References:
combining long strings Sintschuk, Michael via Tech-talk
Re: combining long strings Lang, Keenan C. via Tech-talk
AW: combining long strings Sintschuk, Michael via Tech-talk
Re: combining long strings Johnson, Andrew N. via Tech-talk
Re: combining long strings Lang, Keenan C. via Tech-talk
Re: combining long strings Johnson, Andrew N. via Tech-talk
Re: combining long strings Lang, Keenan C. via Tech-talk

Navigate by Date:
Prev: Re: RE: Re: Re: modbus write registers error to Pilz PLC 高振华 via Tech-talk
Next: Re: RE: Re: Re: modbus write registers error to Pilz PLC Mark Rivers 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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: combining long strings Lang, Keenan C. via Tech-talk
Next: Re: combining long strings Lang, Keenan C. 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  <20212022  2023  2024 
ANJ, 04 Feb 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·