Network Variables and Device Change

2021-09-23
2021-09-24
  • sean-barton - 2021-09-23

    While attempting to change the device for my project (change from one display manufacturer to another), everything seems to be fine except for 3 errors showing on my Application:

    C0032: Cannot convert type 'UDINT' to type 'TIME'
    C0032: Cannot convert type 'TIME' to type 'UDINT' x 2

    Double clicking the errors does not reveal the error location.

    I managed to narrow the error down to the a network variable receiver list by excluding parts of the application bit by bit until after excluding the network variable receiver list, the errors go away.

    If I re-enable the network variable receiver list, the errors return.

    I have removed the receiver list and added another with the same name using the same import file but the errors do not go away.

    I have used 'Clean' and 'Clean All' and deleted all messages but when I attempt to build, the errors still show.

    Any advice on next steps?

    Thank you.

     
  • djole01 - 2021-09-24

    I work with a Safety PLC, and I have noticed that with one built-in conversion FB, " bool to safebool" , I get errors too. It was determined that this was hardware related, it wasn't supported by our specific plc/vendor.

    This might not answer your specific question, but I believe those conversions might not be supported with the new device. Take it with a grain of salt.

    If this is the case though, there might be other ways to make those conversion, like converting explicitly?

     

    Last edit: djole01 2021-09-24
  • sean-barton - 2021-09-24

    @djole01

    That is a valid point you make, the hardware may not be able to support the function. To test this idea, I put the original display device back, cleaned and built the application; however, the errors are still there! So where the project was able to build properly in the past with this device, it now shows the errors reported above.

    Going one step farther, I have excluded all of my code from the application build so there can be no mistake about my code or conversions done within my code. If I leave the network variable receiver list in the application, the above errors show as a result of a clean build. If I exclude this network variable receiver list and perform a clean build, the errors then go away but I receive two new errors:

    C0046: Identifier 'NetVarManager_UDP_MainTask0' not defined
    C0035: Program name, function or function block instance expected instead of 'NetVarManager_UDP_MainTask0'

    I do not recognize the identifier in the error message above, and double clicking on the error does not take me to the error location. My assumption is that the error takes place somewhere in the network variable receiver list code, built into codesys, and the change of device has disturbed something there.

    If I perform a clean build after receiving the new errors, all errors finally go away.

    After doing all of the above, if I enable the receiver list and perform a clean build the original errors show up again. This looks like something beyond my ability to fix, I believe it is in the Codesys code.

     

Log in to post a comment.