Jump to content

Search the Community

Showing results for tags 'Modbus'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Our Community
    • Come on in!
  • News and Announcements
    • Latest Release! UniLogic V1.28 introduces Motion: Servos & Motors plus OPC UA server!
    • VisiLogic:9.8.64 - Link to mobile app, Ladder: 2x the Space!
    • New!!! ***** U90 Ladder*****
  • UniStream HMI + PLC Programmable Controllers & UniLogic Software
    • UniStream: Hardware
    • UniLogic Software
    • UniLogic UDFBs
    • Industry 4.0, IioT, MQTT, OPC UA
  • Vision, Samba, Jazz and M90 PLC + HMIs & Software
    • Vision & Samba PLC + HMI Controllers & VisiLogic Software
    • Jazz, M91 PLCs and U90Ladder
  • Software Utilities
    • SD Card Suite
    • Remote Operator
    • Remote Access
    • DataXport and DataXls
    • UniDownloader
    • UniOPC
    • UniDDE
  • Utilities for .net and Visual Studio
    • Unitronics PCOM Protocol
    • COM Object ActiveX .dll
    • .NET driver
  • Project Design
    • ...I have a project...what hardware do I need?
  • User Application Stories
    • Just finished a great project?
  • Tips and Tricks
    • Best Programming Practices
    • Tips and Tricks
  • Job Board
    • Projects seeking Programmers
    • Programmers seeking Projects
  • General Discussion
    • We're Listening...
    • The Lounge
  • News and Announcements Copy

Blogs

  • Unitronics' Blog: PLCs, HMIs and more
  • Saragani's Blog
  • Simon's Blog
  • Ash Neilson's Blog
  • Joe Tauser's Blog
  • Unitronics en Español
  • Powered by AMPS
  • Alldrives UK's Blog
  • Unitronics, Howman Style
  • PLCNewbie's Blog
  • Telestar Automation Blog
  • Webinars Collection
  • Tim's Corner
  • Blog
  • TELESTAR (Italian)
  • i4 Automation
  • i4 Automation (UK)
  • Unistream UDFB's

Categories

  • From Headquarters: Sample Applications
    • From Headquarters: VisiLogic
    • From Unitronics: U90 Ladder applications
  • User-submitted Applications
    • From Users: VisiLogic applications
    • From Users: U90 Applications

Categories

  • Articles
    • Forum Integration
    • Frontpage
  • Pages
  • Miscellaneous
    • Databases
    • Templates
    • Media

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 116 results

  1. Hi all, I use US5-B10-TR22 to read data from Modbus slaves. Technical documentation of slaves gives such information (see attached picture). Could someone tell if in US5 is the same byte order (didn't find that information). As for now everything looks OK, but I'm afraid that there could be a problem when there will be large numbers accumulated. Thank you in advance.
  2. Good evening, all, I have a project where UniStream US5 controller with RS485 port is used to read data from 8 electricity meters. These are exactly the same model and parameters quantity and type also the same. I thought about making a struct for one meter with all variables needed and then copy and change struct name so I don't have to enter each of these variables for each meter. But there's no way to copy struct in UniLogic. Maybe someone of you has done something like this and can share some advice? One more thing: since no special logic needed, I'm planning to use PLC Communication Modbus Master's dialog to add slaves, enter all required data variable (about 50 each meter) and use toggle bit for each of the meter. I wonder if it's the best way to do this, because I need to read about 50 variables from each of slaves. Your thoughts about this would be highly appreciated. Thank you in advance.
  3. Is it possible to have MODBUS TCP (Ethernet) via the CPU Ethernet? I have two separate networks I'm using. My PLC needs to get data from a DCS via MODBUS on a 172.17.100.xxx network and a computer needs to get the MODBUS data from the Unitronics PLC via a 172.16.100.xxx network. Can I do this or do I need to find another solution?
  4. Hello to all. I am working on a project in which I will only get PLC data to an external control system, we will do it in MODBUS. Everything works correctly, but I find two problems: The addressing mapping is 1: 1 accessible from MODBUS, so they could read any record. The same is reproduced in writing, so that accidentally (or not) they could overwrite important values of my program. Could we limit the reading to a certain number of records? Could we limit the writing? Thanks in advance!
  5. Hi I have invested a lot of time without succes to comunicate a US7-B10-RA28(+ module UAC-CX-01RS4) with a ultrasonic device( modbus RS485 ). I want to read holding registers (40001 to 40016). The manufacturer of device recommend to read the holding register (03) ( 40001 to 40016), I did this with unilogic software but without succes¡ In Global Tags show: Modbus Slave Status: 3 Could help me ? I do not Know What is the error?
  6. I use a PLC (US5-B10-TR22) and communicate with a smart meter throw MODBUS TCP/IP. The registers of this smart meter store values as 'single'-precision floating-point variables. Throw the UniLogic is not possible read 'single' values and I did not find a way to do this conversion.. How can I solve this issue? Charalambos
  7. Hello. My Unilogic USP-104_B10 needs to receive information tags from a different PLC (Schneider M340) via modbus I think, and im not sure how to do that. I was wondering if anybody could help me with this or explain what I need to do in order for the PLC's to communicate so I can reiceve tags and inputs/outputs from the M340. I have setup the panel ethernet configuration ip , but now I need to know where to set the M340s IP and if I need a Master Slave function for this to work. Anybody who wants to help a newbie out? Thanks. -Steffen, Norway
  8. Hello, I'm trying to poll some values from Laumas weight transmitter - and I'm kind of stuck. I've tried to read some addresses according to the Laumas manual, but the power-up value in the receiving variable is never overwritten. I get modbus status as -11, which I don't know what means. THe setup: It should be reading all the time if set up as periodic and the active bit is set ? The values when running: Anybody with any hints for me? Thanks, Bjarni
  9. Dear all, We communicate 10 nodes through rs485 communication in v700 port 1..the problem is if my one divice is failture means other 9 nodes getting delayed..kindly provide solution RegArds Mohamed
  10. Hello, I'm just starting my first project with UniStream/UniLogic and I have the PLC hooked to a PC via Modbus, PLC as Slave. I haven't found a way to sync the clock in PLC with the PC clock. Is there a way to set the PLC clock via the Modbus ? Thanks, Bjarni
  11. Hi I'm new to PLC operations, and I was hoping I could get some help getting started with MODBUS communications. I have a PLC/HMI running UniLogic and Festo CMMO which I am trying to run over MODBUS TCP. I have added the remote slave, and downloaded the program onto the PLC. However, I haven't been able to get any proof of the connection. I have added registers (3 and 17) based on reads to tags (INT16), but they all display as 0. I have also tried displaying the value of slave.sessions, but it also shows 0 which leads me to believe it has not even tried to start the connection yet. I feel like I'm missing some critical first step or debugging process? I would appreciate any help or point in the right direction. I'm using the controller linked below and trying to follow the MODBUS instructions starting on pg 27. https://www.festo.com/net/SupportPortal/Files/425129/CMMO-ST-LK-SY_2015-07a_8043621g1.pdf Cheers Russ
  12. Dear colleagues. I hope you are doing fine. I have 5 power meters in a RS485 bus communicating through Modbus RTU with one Unistream which is acting as master. 3 of them are from the same brand and model. They are all ok, connecting and communicating. The registers are 32 bit length (treated as INT32 in the Unilogic). So far everything is good. For the other 2, from different manufacturer, It seems I am receiving the data in a strange way because the data is not coherent. It seems I am receiving the words or bytes inverted. if I use a external Modbus client in my laptot, I can see the value correctly displayed as a FLOAT32 ABCD and it matches with the actual value (12.3, 24.1, 48.3 volts... etc). In contrast, with the PLC I see gigantic values. I tried to use the swap byte funcions but couldn't get it. I don't know whether there is a way to compose a REAL from two INT... Does anybody ever had similar problems/solutions? I am kind of desperate. Thank you and best regards.
  13. Hi Would like to get some assistance on the following, im using a US5/7-B5-TR22 with a UAC-CX-01RS4 for rs485 comms Im talking to a single UV lamp ballast, I carnt seem to get any comms working, the ballast has LED indicators for when comms in working/ fault and also transmit and receive LED,s, I have got these on once then haven't managed to get them to come back, Im thinking its a software issue as I used some software off the internet "simply Modbus master" and could send commands and receive reply's, I have had this working before with a similar ballast talking re485 using a samba PLC, but the customer wants to transition to unistream, I have attached a copy of a project I have been using to just try get the comms working, and also the document supplied with the ballast, specifying the registers to use 3kW Lamp Driver modbus rev13 100813.pdf Test Ballast project.ulpr
  14. Hello, I just have a small problem, and I keep on asking some simple stuff, because I'm new to Unitronics, and programming PLCs. I have a JZ20-J-UA24, and I want to read from it, and write via labview. This requires a modbus configuration. I looked at the sample modbus configuration on that unitronics supplies with U90 ladder, and some modbus forums on unitronics, but didn't clearly understand what to do next. So suppose I want to read on labview the temperature measured via a KTC connected to the PLC's analog input channel 1 displaying its value at the level of MI 19, how can I do that? And can someone explain the configuration of the PLC because I didn't get alot what's going on, or how even to read the IP of the PLC.
  15. Hi, I'm using a Samba 3.5 with ethernet card to send data to scada system. With test purposes I'm trying to send a discrete input MB 0 in response to the read digital input command (0x02) with the following instruction: But in the test software (Simply Modbus TCP Client) I can't see the value of MB0. Trying to find the answer, I tested sending the MI10 value in response to read holding registers command, but It doesn't work neither. I'm using the modbus TCP initial setup from the examples and the webinars, and I can see the connection in the Samba, but I can't send the data. I don't know if I'm missing something, this is my very first time with Unitronics modbus TCP. I really appreciate any help or suggestion to put me in the right way. Regards
  16. Hi all, I use USC-P-B10 with USP-070-B08 (modular HMI/PLC) as a master via Modbus Ethernet. Could anyone recommend me how to catch an exception in UniLogic 1.26.90 if slave is not responsive (powered down, loose cable...). Thanks
  17. Hi all, Would you mind to show me some example how to treat INT16 as a power in W and its scale factor INT16 received via Modbus, please? Should I firstly convert them into Real, then multiply them? Thanks
  18. Does anybody know if Vision controllers (ie V130) support Modbus TCP or do they support the Modbus RTU over TCP implementation. The difference is that the first follows the original Modbus TCP frames (ie no CRC) while the latter encapsulates the serial RTU framing sent over TCP media. Which one is supported by Vision and the other Unitronics controllers?
  19. 1) When editing IO Inputs or Outputs Alias Names directly (from the table view, without going into window for editing single tag) - cold not put a space symbol between words while writing (later when the whole "Input5AbracadabraOpenSesame" is written, you can, of course go back and put spaces in between words finally getting to the "Input 5 Abracadabra Open Sesame"). Problem is not observed while editing in single tag editor window. This is new mis-behavior, which was not observed some versions earlier. 2) In Data Table view - String literals are center-aligned without any obvious reason, which detracts from readability of large tables. For Number literals it makes sense to have them centered within cells, which more likely adds readability rather than destroys it, but it's a different story for the Strings. 2.1) In the same Data Table view - it is unable to directly edit anything without explicitly going into editor window for each cell with double click... That's so tiresome and time consuming for large tables. Exception is direct Paste, which however helps little, if each cell is slightly different. 3) Alarms - ID's could not be freely changed... I see no obvious reason for not allowing to do that because there are gaps still allowed (by deleting some alarms in the middle) and no automatic reordering of ID's is then happening. Of course it does not change much, but adds to the overall order and clarity of the project. Thus why not allow to change them freely, of course, with checking for duplicates. 3.1) Alarms could not be moved around (between groups for example). Took me few weeks to reorder entire system of 100+ Alarms... 4) Ladder function could not be duplicated, like almost anything other could. 5) The XY Plot is wrong type of thing, or at least I need a different flavor (see attached pictures): a) XY_Beijer is the reference - a single clearly visible point of arbitrary size is drawn for each feed in data sampler; the lines referencing these point(s) to the X and Y axes are drawn (switchable on/off); the background where any arbitrary function could be drawn or at least a clear background where any arbitrary picture could be put into (switched during runtime, not statically linked); b) there is always a cause - see the Weather_compensation; c) and a workaround - see the Comfo_Uni which is far from ideal, but at least works, somehow... Why all of this - I was asked to implement Comfomatic (Weather compensation for central heating) functionality as addition to primary functionality. Typically it is done in special hardware like Danfoss ECL series controllers, however the underlying mathematics is rather simple, so why not.... It worked out - making a usable user interface is a major pain on the Unistream platform.... d) of course in ideal world, I'd be asking the Unitronics team to implement the entire functionality in specialized function block, both for GUI as well as for Ladder, however I understand there are so many uses for these PLCs that implementing separate function block for each of them would lead to the same clutter which was seen in VisiLogic series software and which the Unitronics guys were presumably trying to avoid in Unistream. e) and there is always a workaround of the workaround - or better, I call it suggestion 2: The the simple Canvas control could be added to the GUI section - thus allowing users to draw whatever they need to solve such challenging tasks... (or if the screen is already a canvas itself, then at least allow to draw some primitives - dots, lines & rectangles from the Ladder (yes I know there is a Line element in GUI, but it is static, you can not even put a variable as its X1,Y1 and X2, Y2 points... thus it's unusable). 6) Each MODBUS target has the Modbus Remote Slave structure attached. This structure has very useful variable 'Fail' within it. It could be ideally suitable for checking for communication problems, and throwing Alarm to the user if any. But what's next - user cannot clear the alarm, because there is now way to drop it to the zero (I mean, there is no way to write 0 to this structure). Yes, of course there is again a workaround - copy the contents to another variable and then compare to it, not the 0, But why always a workaround? Why not do the things right the firsthand. 7) I'm still begging for ability to reorder members of the struct, like it's done in SMS Message composition with the List Of Text Variable - simple control to move members up and down. It has no meaning while the project is little and simple, but when it becomes large enough, when various functionality is added to different parts all the time, when structs determine what is written to different tables back and forth, then keeping various recent additions together with their primary counterparts rather than at the end of the struct, could be soooo meaningful. At present its a tremendous and very time consuming job to reorder the structs, by renaming and replacing every single appearance everywhere, when it could so easy be made to happen automatically. Not to mention, that is so easy in plain C, just cut one and paste above each other... Many thanks for the product already that great (light years away from said Vision or Samba), but of course, any improvement would be warmly welcome. P.S. Please double-check the communication with Cinterion BGS2T modem - it tends to drop from time to time (worse with USB-COM, better with UAC-01RS2, but still not ideal) and then it's unrepairable till the next complete reboot of the PLC... (re-initialisation has no effect).
  20. I need to read multiple Modbus registers from a non Unitronics controller. These registers are not consecutive registers. What is the best way to do this? Multiple Read Holding Registers (3) one after another? Rung examples of your ideas would be most helpful and appreciated. Thanks!!!
  21. In helping a customer integrate a UniStream into a SCADA system I have come across a curious gap in the available information. I can't see any declaration of the function codes that the external Modbus master must use to communicate with the UniStream as a slave. The Unitronics example and tutorials use a UniStream as the master as well as the slave, which doesn't highlight this issue. I have looked within UniLogic, tried exporting the Modbus registers as excel, looked at the UniLogic help file, watched the Unitronics YouTube video and searched the forum. None of these sources gave the necessary information So far I have gleaned that the following codes are supported on a UniStream modbus slave: Coils Read Coils (function code 1) Write Coils (function code 5) Write Multiple Coils (function code 15) Registers/Words Read Holding Registers (function code 3) Write Single Register (function code 6) Write Multiple Registers (function code 16) But what if the customer's master only supports Read Input Registers (function code 4)? I don't have a firm answer on how we could handle this. Can anyone provide a definitive list? I would like to be able to answer this question with confidence. A standard part of documenting a Modbus Slave is to specify which function codes it supports, so the master can be correctly programmed. Thanks, Simon
  22. Hello: I am having trouble to communicate my V1040 with an existing Schneider Electric M221 with the serial port. It was supposed to be easy, but I don't receive any answer from the M221. V1040 has 2 ports, and I am using port 2. The port has been set up for RS485 with termination with the DIP switches. MODBUS protocol is: Baud rate: 19200 Parity: NONE Stop Bit: 1 wires has been checked and also pinout. My first concern is about the pinout. Schneider requires 3 wires on RS485. It uses D1, D0 and ground, while V1040 only uses A+ (D1) and B- (D0), but no ground as reference. The V1040 is the MASTER and has ID1 and the M221 is setup with SLAVE ID 3, and the only line on this PLC is to set a value on %MW1 with the value of %MW0 A very simple program attached is made to read a Holding Register Addressed 1 (%MW1) and this value should be displayed on the Touchscreen. While reading the execution, the status messages I receive are 4 and 5 only. This means I have no communication. I really need help on this. Please advice. Prueba MODBUS.vlp Prueba MODBUS.smbp
  23. Hi, today in our company we received an ultra filtration system that comes with a V1040 on it. We've never had worked with an unitronics system before and we are trying to communicate the plc via modbus rtu over rs485 to work with our network. We configured the com port of the plc to work with rs485 as it was factory configured to work with rs232 but we can't reach it on our system, it's just showing of offline status. In the ladders we had a special subroutine for modbus, including all the registers and status of the system, we are reaching these points but it doesn't work. I'll attach some screenshots of the COM and modbus configuration and the modbus registers that i'm trying to read and i'll appreciate any help if i'm doing something wrong. Also, if i modify the program i need to upload it all or there is an option to upload only the com configuration without stop the plc? Due to the critic status of the process i only have a few minutes to stop the plc so i'll appreciate any shortcut to work faster on the system. As i said we've never worked with this plc before so we don't know the kind of responses of the system.
  24. Hi! So, I am writing ASP Core 2 project and one of the components is communicating with Unitronics V130 unit (as a Modbus Slave). Since provided .NET Driver library is not portable to ASP Core I need to implement this communication with Modbus. I have limited experience with Modbus protocols but I have used some basic functions in the past – mostly reading Registers and Coils. Just to sample some data. I used python library modbus_tk for this purpose. Using Modbus gives me options for adding more optional hardware down the line. After reviewing some libraries supporting Core I selected library Modbus https://github.com/AndreasAmMueller/Modbus made by AndreasAmMueller, written in C# as Net Standard 2.0 library. I started testing this library by communicating over Modbus TCP/IP with V130 PLC. I got mixed results. - namely "Write Multiple Coils " or "Force Coils " (Function code 15) does not work correctly. So. Modbus read functions all work great, these are: Read Coils (Function code 01) Read Holding Registers (Function code 03) Out of write functions these work great too: Write Multiple Registers (Function code 16) – named “#16 Preset Holding Registers” in VisiLogic help files Write Single Coil (Function code 05) – not referenced in Unitronics (VisiLogic) help files under “Slave Addressing” Write Single Register (Function code 06) - not referenced in Unitronics (VisiLogic) help files under “Slave Addressing” These functions are documented in help files of VisiLogic at “Slave Addressing” topic (where address offsets are defined). Now, function that does not work (at least with V130) is: Write Multiple Coils (Function code 15) – named “#15 Force Coils” in VisiLogic help files This function takes in “n” sequential bit values (“coils”) and a “starting address”. Then it writes these values in slave (in my case V130 device), starting at “start address” and for “n” values. It never sets coils to provided values. But it does set provided coils (addresses) just not to provided values. Meaning, if I want to set 16 coils (lets say some Memory Bits – MB) to 1, only some 8 coils would be set to 1, other 8 coils would be set to 0. It appears that only some byte is set to provided values (but that varies with number of provided addresses/values). Let me repeat again – all provided addresses are written to, just not the values that are provided. Interesting thing is that even if I provide only “true” (1) values, somehow “false” (0) is written to address. AFAIK if I provide only “false” values, no “true” value is written to address. Let’s see what is sent to PLC in next section Modbus implementation on PLC? I suppose Unitronics PLC Modbus implementation is compliant to Modbus specifications and implementation guides, defined by http://www.modbus.org/specs.php (I don’t know, but I would hope). As such Modbus TCP/IP ADU (Application Data Unit) should be implemented as defined in http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0a.pdf and Modbus PDU (Protocol Data Unit) as defined in http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf. This is nicely presented in image bellow – Modbus ADU (MBAP Header + MODBUS request). Here request is made for reading register #5 in remote server (page 22/46 from Application Protocol document): There are 6 bytes of MBAP Header, followed by “length – 1” bytes of MODBUS request (we must subtract 1 byte for Unit identifier, which is included in “length”). In example above there are 5 bytes of Modbus request that makes “length” equal 6. Function “Write Multiple Coils (code 15)” Modbus request is defined in Messaging Implementation Guide at page 29/50: This block is inserted at MOBUS request field in Modbus ADU, presented above. It takes 1 byte to describe the function code, 2 bytes for starting address, 2 bytes for quantities of values (number of “coils” we want to write), 1 byte for number of bytes and finally N Bytes for associated values. Simple test For simple test I am going to use function “Write Multiple Coils (code 15)”, writing 16 (2 bytes in length) “true” (1) values, starting at address 1200, which means Memory Bit (MB) #1200. Device ID is 1. This is Modbus request ADU, which is sent to PLC: It appears that the implementation of Modbus in NET Standard 2.0 library is compliant to Modbus specifications and implementation guides, defined by modbus.org. There is correct MBAP Header and MODBUS request. It provides correct address (1200), number of coils (16) and correct values of coils, which is “true” 1 for all, thus 2 bytes with value of 255. But the result of this operation yields, starting at correct address of 1200: 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0. We were hoping for all 1. I doubt its wrong implementation in the library, I have checked many requests against specifications from modbus.org and all seem to comply. Ofc the working functions (Read Coils) etc. all comply to modbus.org specifications and yield correct results. Only “Write Multiple Coils (code 15)” function yields wrong results and is there any chance that its not implemented according to modbus.org? Solution/hack that seems to work I found one hack that seems to work (at least with V130 PLC). But I wouldn’t recommend to use it until there is conformation that this hack does not cause some unwanted consequences. Here goes, it appears that appending one (dummy) byte (of arbitrary value) before bytes that represents values (in the above case [12] and [13] bytes) somehow causes the function to work and we can update Length byte [5]. But it seems that updating Length does not have any effect, it works regardless (need to test that more rigorously). New (working) request would look like this, with added dummy byte: As you can see there is added dummy byte at [12] and length updated to 9. Result of this operation yields correct state - all 16 coils MBs are set correctly. This seems to works with any combination of values and number of coils. But this hack is untested, I don’t know if this command is really contained to just defined addresses or does it write all over the memory. I tested this only for some addresses beyond defined range by manually setting values via VisiLogic “online mode". More importantly, why does this hack work? Or even more, why “normal” Write Multiple Coils (code 15) does not work? Is this V130 specific? Any help appreciated! Best Regards! PS: To add, I did change "MODBUS: SCAN_EX" block to SCAN and SCAN_32 - nothing worked. Now I left it with "MODBUS: SCAN" block to support "older working applications" as stated in help files of VisiLogic.
  25. Hi All, I'm using the UniStream as a slave connected by Modbus TCP. Is there a way to know/check the forwarded data, by the Master, byte to byte? thanks
×
×
  • Create New...