USB Storage Handler & NumPad

2016-06-02
2016-06-08
  • pinal.baraiya - 2016-06-02

    Hi All,

    I am using CR1201 from IFM's new screen supported with CodeSys V3.

    How can i use USB Storage Handler? i have installed the Library called ifmUSBStoageUtil 1.0.0.0. But upon compilation it is giving me an error..

    C0086 : No definition found for interface ifmBEH.itfBEH_Enable
    C0286 : Method USBStorageHandler.rdIns cannot change access modifier "PROTECTED" when overriding Method BEH_Enable.rdIns
    C0032 : Cannot convert type USBSTORAGEHANDLER (ifmusbstorageutil, 1.0.0.0 (ifm electronic)) to type ICmpEventCallback (cmpeventmgr, 3.5.8.0(System))

    Can somebody help me out with this please?

    Also i am trying to use NumPad, but no succes, can somebody share the example?

    thanks,

     
  • JensN - 2016-06-03

    Hi,

    I am currently working on a project similar to yours.
    I am using a network with 2 IFM CR1201's, 1 CR1082, 1 CR2034 and a basic controller CR0403.

    On one of the CR1201's i have used libraries ifm_PDM360NG_USB_V010203.lib and IFM_PDM360NG_USB_LL_V020000.lib.
    Both are essential to be able to use the USB flash drive.

    Then you should only call USB_storage_handler (the program, not the Function block) from the ifm_PDM360NG_USB_V010203.lib library.

    it should look something like this:

    remove_USB : bool;
    PATH_TO_USB : string;
    USB_active : bool;
    USB_STORAGE_HANDLER(
       REMOVE:= remove_USB,
       SCROLL_UP:= ,
       SCROLL_DOWN:= , 
       USB_PATH=> PATH_TO_USB,
       USB_IDX=> ,
       NUMBER_USB_DEVICES=> ,
       SELECTED_DEVICE=> ,
       REMOVE_RESULT=> ,
       USB_INSERTED=> USB_active);
    

    If you mean to write data to the USB drive for backup purposes, you will also have to use the library SysLibFile.lib
    Then you will need the Functions SysFileOpen, SysFileWrite and SysFileClose.
    Several examples can be found in other topics on this very forum should you need them.

    In regards to the numpad, this only works when you have added a variable.
    You also have to put a code in the text box.

    for example:
    when i add a rectangle in a visu, i will have to go to its properties -> variables -> and under textdisplay add a variable.
    This can be a local variable (PLC_PRG.test) or a global variable (.test).

    Then go to "text" and add one of the following codes in the text box:
    %d for whole values
    %.0f for real values -> you can change the number of decimals after the comma by changing the 0 to a 1, 2, etc...
    %s for string values

    Once you have don this you can activate the numpad under the same rectangles properties -> input -> activate "text input of variable 'textdisplay' " and select numpad.
    You can even add a maximum and a minimum to the input.

    Beware, this will only work in codesys V2.3
    I have had several problems as well using the CR1201 on codesys V3.5 SP8 patch 4.
    When i go back to basics with Codesys V2.3, it does work. IFM is currently looking into this problem.

    Hope this helps,

    Best regards,

    Jens

     
  • pinal.baraiya - 2016-06-08

    Hello JensN,

    thanks for your reply. Actually i am using CodeSys V3.5 PS8... and i am supposed to use only this version due to the requirement. I have now get it worked in Codesys V 3. I have used libraries suggested by IFM and it is working. attached is the screen shot of the list of the libraries that i am using for this USB Handler....

    Thanks,
    Pinal

    JensN hat geschrieben:
    Hi,
    I am currently working on a project similar to yours.
    I am using a network with 2 IFM CR1201's, 1 CR1082, 1 CR2034 and a basic controller CR0403.
    On one of the CR1201's i have used libraries ifm_PDM360NG_USB_V010203.lib and IFM_PDM360NG_USB_LL_V020000.lib.
    Both are essential to be able to use the USB flash drive.
    Then you should only call USB_storage_handler (the program, not the Function block) from the ifm_PDM360NG_USB_V010203.lib library.
    it should look something like this:

    remove_USB : bool;
    PATH_TO_USB : string;
    USB_active : bool;
    USB_STORAGE_HANDLER(
       REMOVE:= remove_USB,
       SCROLL_UP:= ,
       SCROLL_DOWN:= , 
       USB_PATH=> PATH_TO_USB,
       USB_IDX=> ,
       NUMBER_USB_DEVICES=> ,
       SELECTED_DEVICE=> ,
       REMOVE_RESULT=> ,
       USB_INSERTED=> USB_active);
    

    If you mean to write data to the USB drive for backup purposes, you will also have to use the library SysLibFile.lib
    Then you will need the Functions SysFileOpen, SysFileWrite and SysFileClose.
    Several examples can be found in other topics on this very forum should you need them.
    In regards to the numpad, this only works when you have added a variable.
    You also have to put a code in the text box.
    for example:
    when i add a rectangle in a visu, i will have to go to its properties -> variables -> and under textdisplay add a variable.
    This can be a local variable (PLC_PRG.test) or a global variable (.test).
    Then go to "text" and add one of the following codes in the text box:
    %d for whole values
    %.0f for real values -> you can change the number of decimals after the comma by changing the 0 to a 1, 2, etc...
    %s for string values
    Once you have don this you can activate the numpad under the same rectangles properties -> input -> activate "text input of variable 'textdisplay' " and select numpad.
    You can even add a maximum and a minimum to the input.
    Beware, this will only work in codesys V2.3
    I have had several problems as well using the CR1201 on codesys V3.5 SP8 patch 4.
    When i go back to basics with Codesys V2.3, it does work. IFM is currently looking into this problem.
    Hope this helps,
    Best regards,
    Jens

    IMG: Libraries in CodeSys V 3.PNG

     

Log in to post a comment.