Search the Community
Showing results for tags '485'.
Found 3 results
Dear all, I'm programming an application on a SM43-J-R20 PLC+HMI. I've added a V100-17-RS4X card, in order to use RS485. I've succesfully implemented Modbus RTU communication with a Frequency Drive. The thing is, I need to communicate with 11 of them. The ladder logic so far uses the Modbus function blocks, as can be seen on the Modbus webinars on Unitronics page. That is, I SET a variable (ex:MB0) , which is used for enabling the "function 06 Modbus" block (preset holding register). At the output of the block, I RESET that same variable, ensuring the block gets executed. At the same time I reset MB0, I SET a new variable (MB1), which in turn is used for enabling the second Modbus block. This creates a sort of "continuous broadcast" to the drivers (which, If they don't receive a command in a certain time, trigger a failure). When the last block gets executed, the sequence restarts, The question is, when I try to send a Stop command to one driver (for example), it takes an awful amount of time to execute the order (30 seconds or so). I believe I may have a conflict between some of this blocks being executed at the same time. Is there a tutorial or an example where I can see how to succesfully implement Modbus communication with several slaves at the same time? Thanks for the support. Kind regards, Martin
Hey guys, I'm often needing to use advanced modbus features because ill need to have dynamically adddressed slave ID's, or changing registers etc, etc and i cant use the built in configuration to do so. Also - the Advanced modbus still require a good bit of logic to be built in order to achieve a good Tx and Rx. I built this UDFB to be used as a single operation which accepts 4 Function In parameters, and one Function out. Example Ladder Note how the function is called, Param 'D' must be reset immediately after the function call: Ladder Image Input A is a struct with 4 members (Note that only one Arr at a time will be filled with the result data, based on your input to parameter 'B') resultBits[0-50] resultInts[0-50] resultUInts[0-50] resultRaw[0-99] The results of your query are stored here, depending on what value you use for input 'B' 1 = result store in resultsBits 2= result stored in resultInts 3= result stored in resultUints 4= result stored in raw buffer( for parsing floating point values etc, etc) Input 'C' is your input parameters for the MB request - Don't worry about the Modbus request, and request descriptor - these are handled inside the function Input 'C' is a struct with the following members slaveId functionCode = Standard codes...holding register = 3, etc startReg = starting register in slave length = how many registers(Keep in mind length of buffers etc, you can always change this) Retries = how many times to retry read request Timeout = how long to wait for response(5000 = 5 seconds -- 3 retries at 5sec each would be 15 secs for a failed attempt) Input 'D' is the Enable bit for the function to run - make sure to reset this immediately after the function call.(See image above) Output 'A' is a number with the following values 1 = read successful 5 = timeout (timeout * retries) 255 = ladder Error Let me know if i made a glaring mistake, or if you have any improvements! I'm sure i didnt do this as effeciently as possible - but, it does work for my purposes. I may add some more error checking and things later. Let me know what you think! Thanks, Matt MBR.ulle
Hi I have an 3 installations. Each consisting of 8 x Jazz UA24, 2 x M91 RA22, 1 x JAZZ R16, 1 x JAZZ T41, 4 x CIAT water Chillers 2 x PROCON analogue input modules. They are all networked on RS485 using Specview SCADA package as MODBUS master. All the Jazz PLCs use the JZ-RS4 com port adapter All the Jazz controllers use the same Communication setup nets All the Jazz controllers are run from the same 24VDC power supply So that's the situation as it stands. My problem is that the JAZZ R16 on all sites has very flakey coms. It will occasionally come online after a restart for a short period of time then fall off again. The comms on all the other devices including all the other JAZZ PLCs is pretty solid. I have tried downloading the exact same program into a spare jazz UA24 and it communicates fine. So by deduction I would assume it is a hardware issue with the R16 specifically. Has anyone else had this problem and is there a way to fix it?? Thanks