Hello, I’m testing the library with a little application in PLCnE 2019.9, PLC FW 2019.9 with the AXC F XT IB (2403018). The bus is just 2 IB BKs, the first of them with some IB IL Devices in its local bus. All seems to work properly, so I’m able to start the bus with the IBM_InterbusStartUp FB, to read the connected IB with the IBM_GetBusStructure FB etc. I do cause a PF just removing for a moment the Us supply of the second BK. But when I try to acknowledge it with the IBM_AckPeriphErr FB I become a failure and nothing works more. I can not acknowledge the error. I need to restart the module supply in order to run without failures these FBs again. 1- Could you take a look of it? 2- Is there any FB in the library that performs a reset of the AXC F XT IB Device? And an IB Stop? 3- In the library there are a couple of FB without related help in the pdf document. Thanks Angel
Hi Angel, I’ll have a look into it and try to reproduce the error on my local test rack.
Which of the function blocks do lack an explanation in the PDF document, please?
Thanks for your input, this is very helpful! Andreas
You are right, I’ve just found a small bug in the function block.
I will contact the manager of the function block development team, so it will be fixed in the near future.
Meanwhile you can use the function block to acknowledge the error on the specific device with xAllDevices on FALSE.
This works as intended with my test setup.Best regards,
Andreas
HI Andreas, the FBs without explanation at the pdf are: IBM_EvalCompRefList_1, IBM_Eval_VersionInfo_1 and IBM_IBC_ProcResp_1. I think it would be nice to have the possibilty to Stop the bus and to Reset the IB Master. Thanks for your quick response. Please tell us as soon as there is a new release. Best Regards, Angel
Hi Andreas, the FB IBM_Get_IB_MasterInfo_1 gives false information. When the bus is not started it is telling “Bus Started” in its output strDiagText. Is this the FB thought to give to status of the bus? How could be known in real time the status of the bus? Best Regards, Angel
Hi Angel, the function blocks you mentioned are for internal use only. That’s why they don’t have a user documentation. I will suggest to release them as invisible.
Sorry, I’ve skipped over your second question before. No, there are no function blocks in the library to stop the bus or to reset the device. However, there are firmware services to stop the data transfer and to reset the bus controller. Would this help you?
Yes, I suppose there is a copy + paste error in IBM_Get_IB_MasterInfo_1. Thanks for the hint, I’ll fix it. The new version will be released soon. Best regards,
Andreas
Hi Andreas, I suposse it is not possible to open a new IB_Control instance because there is also one instance of it running in a FB from the library, isn´t it? So, I don´t know how to program new services (like Stop service) when this library is being used. Could you explain me how to do it? Where to write the send_Array and to read the receive_Array etc.. Thanks. Angel
Hi Angel, you are right, I would not recommend to use another instance of the IB_CONTROL_NEXT function block to avoid conflicts. But you can use the socket function block of the library for the same purpose.
It can be handled in the following way:
1. Check xBusy of the udtIB_Control_Skt structure. As soon as it is FALSE you can start your Program / Function block. 2. At first set xBusy to TRUE. 3. Fill the array arrIBC_Data_Snd with your Interbus service command in the way as it is described in the Interbus G4 firmware manual. 4. Set xExecute to TRUE. 5. Wait for High signal on xDone or xError. 6. Set xExecute to FALSE, evaluate the data in arrIBC_Data_Rec. 7. Repeat step 3 to step 6 with your next services until your program is complete. 8. Set xBusy to FALSE.Best regards,
Andreas
Ach so! :O) I will test it, thanks Andreas!