Jump to content

Porter

Members
  • Posts

    193
  • Joined

  • Last visited

  • Days Won

    20

Porter last won the day on March 16 2021

Porter had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Canada

LabVIEW Information

  • Version
    LabVIEW 2018
  • Since
    2008

Contact Methods

Recent Profile Visitors

6,425 profile views

Porter's Achievements

  1. Do you have any plans to put this up on Github and/or vipm.io?
  2. It seems that everything is passed as float. Bitwise should be performed on integers. So maybe muparser isn't the best solution. They do mention that shift left/right can be added though: https://beltoforion.de/en/muparser/customizing_muparser.php But maybe GPower Expression Parser has exactly what you need: https://www.vipm.io/package/gpower_lib_exprparser/
  3. The muparser library should definitely be updated. I had modified the muparser library to add the : character as a valid variable name character because my variable names often include colons. To add bitwise operations like "2&3 = 2", either you would need to create a wrapper that adds these functions to muparser, or just modify the original source code like I did for the : character. I'm not sure how much work this would be. The labview code wouldn't change at all, except for specifying a new version of the muparser dll.
  4. Same as LabVIEW's zoom feature
  5. In "TX ADU.vi" of the "MB_ADU_RTU.lvclass" try setting the mask of the VISA Flush to "Flush Receive Buffer (No I/O)" If that doesn't change anything, then try replacing the VISA Flush with this: Please let me know if that changes anything.
  6. What model of USB to RS232 cable are you using? Maybe this could work? Maybe the RTS and DTR are cleared during the Flush IO buffer that is called just before serial transmission. This is the first time I would have seen this behavior though.
  7. 300 baud. That is slow! This error is generated by the slave ID check that happens after the first 2 response bytes have been received. Byte 0: SlaveID Byte 1: Function Code If the slave ID doesn't match the slave ID of the request, then you have a slave ID mismatch. Likely the data is somehow corrupt. Are you sure that your stop bit and parity bit are set correctly? You can also check the two received bytes using a property node like this: Be sure to set the string indicator to hex display.
  8. That's what I was thinking. Thanks for the clarification.
  9. It seems that there are now two forks of the erdosmiller TOML library: https://github.com/AntoineChalons/lv-toml https://github.com/justiceb/BlueTOMLSerializer @bjustice is the BlueTOML a fork of the original erdosmiller library or of Antoine's library?
  10. Anything else that should be VIMed? Median, mode, standard deviation? Everything NI_GMath and NI_AALbase please. They greatly impact application build time.
  11. I couldn't get it to return a non-zero error code. I tried Inf and NaN in the array. Dividing once for each element feels expensive. It doesn't seem like lvanlys uses it either. Both the native "dumb" mean algorithm and lvanlys overflow around the same value. Whereas a divide at each element algorithm can handle higher values. Mean Value Test.vi
  12. I'm just going to throw this out there... LabVIEW's included mean value of array function calls and external dll (lvanlys). It takes close to twice as long (depending on array size) to execute than just doing a native sum of array elements then divide by array size. Is there any advantage that the lvanlys function has over this simple native mean? Why aren't most of the lvanlys functions implemented as native LV code instead of a dll? I'd imagine that we could get some performance boost on some of them by using inlining, VIMs, and parallelized loops. Mean Value Test.vi Mean Value Test SGL.vi
  13. Glad to hear that a new converter did the trick. I can remember having an issue like that a long time ago and it was due to incompatible hardware. The main reason why I don't like the synchronous mode is because it allows only one serial read at a time, across the entire system. So for a system with multiple serial ports, you can only poll them one at a time. I recall being very confused when using the old NI Modbus code and watching the status LEDs on our multi-port USB-Serial converter light up sequentially. It had a very detrimental impact on the performance of the system.
  14. That's the first time I've heard of such a problem. I'm reluctant to implement this because from experience, synchronous R/W usually causes more problems that it solves. Would you be willing to privately share the code with me? What kind of serial port are you using? Can you try using a FTDI-based USB-Serial converter to see if you get the same behavior? Other USB-serial converters that perform well with VISA are: https://www.sealevel.com/product/2105r-usb-to-1-port-rs-232-db9-serial-interface-adapter/ https://www.moxa.com/en/products/industrial-edge-connectivity/usb-to-serial-converters-usb-hubs/usb-to-serial-converters/uport-1100-series/uport-1150
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.