Activity for Lo5tNet

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Hello, We use a controller that comes with a bunch of predefined faults. These faults are considered active and historic. They are a 32 byte array but only take up 26 bytes of data. Because of this the historic faults start at address 26 instead of 31. Active faults variable take up address location 0 to 31. Historic faults variable take up address location 26 to 57. Because of this overlap I get an error that these overlap and it wont allow me to download to my controller. This isn't an issue in...

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    There are some issues in how you are calling SysDirOpen and SysDirRead. I would suggest, for starters, looking at the File Utilities example on forge or to look more at the help files. File Utilites example can be found here: https://forge.codesys.com/prj/codesys-example/file-utilities/home/Home/ or you can search the forge.

  • Lo5tNet Lo5tNet posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    Copy_Device_To_USB is a function block and must be declared. So in your VAR section you would do something like: VAR FB_CopyDeviceToUSB: ifmFileUtil.Copy_Device_To_USB; END_VAR //Then call FB_CopyDeviceToUSB to access function block FB_CopyDeviceToUSB(.....); Hope this helps.

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    This worked great to get us by. Thanks for the help.

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Thanks Marcel, I will give this a try.

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Hey Marcel, Thanks for responding. I have recreated a basic project to simulate this. This is using 3.5.17.0. What I found in recreating this is under "Visualization Manager" if "Support client animations and overlay of native elements" is checked it works great. Unfortunately my device does not support that option. Steps to recreate this in simulation mode: 1. Press the "Turn Hash Lines On" button. 2. Press the "Turn Hash Lines Off" button. 3. Press the "Move Line 300" button. 4. Press the "Turn...

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Hello, I have a project that uses multiple lines. These lines can be moved around the screen but I'm having an issue. First I will tell the line to hide the hash marks. Second I will then move the main line. Third I will tell the line to show the hash marks As seen on the right picture below the hash marks still want to draw in their previous position. It is hard to tell from the picture but you can also see small nubs off the main line where those hash marks would be. As soon as I do something else...

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Wondering if there is a way to run simulation mode as 32bit instead of 64bit? Reason is that in a compiled library the company uses CMPERRORS 3.5.5.0 which is not supported in 64bit and I don't have the device to test on. Thanks for your time.

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    You can also use the function in the VisuDialogs library called VisuDlg_GetPasswordString to convert a string to asterisks. In your "Text Field" you would set the "Text Variable" to VisuDlg_GetPasswordString(stOrg:= str_Password)

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    In J1939 I have always gone with option 2. The issue with option 1 was that a watchdog is usually X time after a connection has already stopped. This leads to that X time of values that still will get passed after the connection is re-established. So if you shut things down due to a watchdog timeout, they could turn back on for a split second after connection is established again.

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    Its been a while since I've tested memcpy against a loop but if memory serves me correctly using memcpy wasn't any faster which lead me to believe it was just doing the loop for me. Anyone know if this is true?

  • Lo5tNet Lo5tNet posted a comment on discussion Runtime

    This should be enough to get you started and you can build off of this. ****************************************************** FUNCTION MyFunction : WORD VAR_INPUT pValue : POINTER TO WORD; //Pointer to start address. In your case it would be %IW0 wIndex : WORD; //Index above start address to go to. 0 = %IW0, 1 = %IW1, 2 = %IW2..... END_VAR pValue := pValue + (wIndex * SIZEOF(WORD)); //Set pointer to desired index MyFunction := pValue^; //Get value from pointer and return ******************************************************...

  • Lo5tNet Lo5tNet modified a comment on discussion Runtime

    Are you asking to do something like: VAR iValue: INT := 511; //Value to be split or you could do wValue AT %IW1: WORD; pValue: POINTER TO BYTE; //Address of iValue byValue1: BYTE; //LSB for iValue byValue2: BYTE; //MSB for iValue END_VAR //Set pointer pValue := ADR(iValue); //Get LSB byte in int value byValue1 := pValue^; //Value would be 255 //Increment to next byte in int value pValue := pValue + 1; //Get MSB byte in int value byValue2 := pValue^; //Value would be 1 There are a lot of ways to approach...

  • Lo5tNet Lo5tNet modified a comment on discussion Runtime

    Are you asking to do something like: VAR iValue: INT := 511; //Value to be split or you could do wValue AT IW1: WORD; pValue: POINTER TO BYTE; //Address of iValue byValue1: BYTE; //LSB for iValue byValue2: BYTE; //MSB for iValue END_VAR //Set pointer pValue := ADR(iValue); //Get LSB byte in int value byValue1 := pValue^; //Value would be 255 //Increment to next byte in int value pValue := pValue + 1; //Get MSB byte in int value byValue2 := pValue^; //Value would be 1 There are a lot of ways to approach...

  • Lo5tNet Lo5tNet posted a comment on discussion Runtime

    Are you asking to do something like: VAR iValue: INT := 511; //Value to be split pValue: POINTER TO BYTE; //Address of iValue byValue1: BYTE; //LSB for iValue byValue2: BYTE; //MSB for iValue END_VAR //Set pointer pValue := ADR(iValue); //Get LSB byte in int value byValue1 := pValue^; //Value would be 255 //Increment to next byte in int value pValue := pValue + 1; //Get MSB byte in int value byValue2 := pValue^; //Value would be 1 There are a lot of ways to approach this so it would help if you showed...

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    In my eyes you really need to give us more information on what you are trying to call. Just showing the errors does not really help without a reference of where those errors are coming from and what you are trying to do.

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    I guess I need to learn why you have to use REFERENCE TO ROBOT_STATUS instead of just setting the type to ROBOT_STATUS. For example the attached picture works for me. Since I don't know why you are stuck using "REF" just a thought of something else you could do. What if you created a copy of I_robotStatus(Internal) like E_robotStatus(External) where E_robotStatus gets updated inside the FB and E_robotStatus is referenced for your property call. Then you can isolate I_robotStatus from any external...

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    You can try using VAR_TEMP as that will assign the values every time your function block is called. So as long as your input variables have been set, Daten will update on your next call to your FB. You won't be able to see those values during runtime as once the function block has finished it's call it will destroy the variable. Otherwise I'm not sure what your end goal is it is harder to make suggestions. //You can try moving your var here VAR_TEMP Daten: ARRAY[0..7] OF TestData := [(index:='2',data:=sSerialNummer),(index:='4',data:=sAssemblyName),(index:='6',data:=sTesterType),(index:='7',data:=sTesterID),(...

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    The Daten array gets initialized before your input variables are set. You need somewhere to update the Daten array "data" to match the input variables that are defined in your function block call or initialization. If you want to set them on intialization you might want to look into setting up a fb_init method for that function block. More on fb_init can be found here: https://help.codesys.com/webapp/_cds_method_fb_init_fb_reinit;product=codesys;version=3.5.15.0#interface-of-method-fb-init

  • Lo5tNet Lo5tNet modified a comment on discussion Engineering

    Maybe I don't understand the question but can you just add a property to the functionblock and delete the "set" property. I'm not sure why "REF=" is needed so might not be understanding the question.

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    Maybe I don't understand the question but can you just add a property to the functionblock and delete the "set" property. I'm not sure why "REF=" is needed so might not be understanding the question.

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    Use $R$N for a newline.

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization

    Not the best way of doing it but in the past I have created a visu that has those images on a page that isn't accessible so that it includes those images when downloading. I agree a third option would be nice.

  • Lo5tNet Lo5tNet modified a comment on discussion Visualization

    Throwing it out there because I don't know if this changes anything for libraries but have you right clicked on the "ImagePool" object and gone to properties->Image Pool Tab and checked "Download only used images"?

  • Lo5tNet Lo5tNet modified a comment on discussion Visualization

    Throwing it out there because I don't know if this changes anything for libraries but have you right clicked on the "ImagePool" object and gone to properties->Image Pool Tab and checked "Download only used images"?

  • Lo5tNet Lo5tNet posted a comment on discussion Visualization

    Throwing it out there because I don't know if this changes anything for libraries but have you right clicked on the "ImagePool" object and gone to properties->Image Pool Tab and checked "Download only used images"?

  • Lo5tNet Lo5tNet modified a comment on discussion Engineering

    I believe your issue is that the structure size is still a byte. I'm not sure if there is a better way but you might want to look into doing something like this (Instead of a union): wTest := SHL((st7bit AND 2#01111111), 3) + (st3bit AND 2#00000111);

  • Lo5tNet Lo5tNet posted a comment on discussion Engineering

    I believe your issue is that the structure size is still a byte. I'm not sure if there is a better way but you might want to look into doing something like this (Instead of a union): wTest := SHL(st7bit, 3) + (st3bit AND 2#111);

1