Jump to content

Simon

MVP 2014
  • Posts

    595
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by Simon

  1. Sorry, I missed all this. Thanks for the tag @Ausman Hi @EladLending The example posted by @Joe Tauser follows the approach I would use. A variation would be to put all the code for each machine state inside a subroutine, to separate the application code from the state machine logic. However that's just an efficientcy and style question, the underlying structure and flow doesn't change. There is no access to the system "program pointer" or anything like that. In Joe's example the "pointer" is MI0. It is explicitly set up and controlled by the ladder application. Hope this helps,
  2. Bootlace pins only apply to the modules with standard industrial wiring connections. The high density modules (32-channel digital I/O and 8-channel temperature) use a pin header as @Joe Tauser has pointed out. I got caught by this when supplying an 8-channel thermocouple input module. The most reliable way to tell from available information is to look in the user manual for the remote IO modules, from the Unitronics technical library. There is a model listing around page 9 or 10 (the doc gets updated, so page numbes may change over time). After the produduct description is an indication of the connector type. For example: The modules with standard industrial wiring will say "10 RTB" or "18 RTB" (RTB = Removable Terminal Block). If it says "IDC" it is pin headers. I've used the Phoenix Contact modules. Here is an example: VIP-3/SC/FLK40 - 2315078, you can also purchase the 40-pin cable or make your own if you have IDC tools. The following comment doesn't help so much if you already have purchased the modules, but I suggest that if space is not restricted, to use 2x 16-channel modules instead of 1x 32-channel module. The initial module price is a little higher, but after factoring in the need to add external IDC adaptors and interface cables, it may be cheaper overall to use the 16-channel modules. Of course the 32-channel modules are great if you have a lot of IO points and limited width on DIN rail, or if you are making your own interface PCB (for example with integrated relays etc). Hope this helps, Simon
  3. Info mode in Samba is same as Vision models that are touch screen only (eg V570, V700). Hold your finger on the touchscreen, in an area where there are no active touch elements, and wait 5 seconds.
  4. Hi Mat, UnCmDrv1.dll uses the PCOM protocol, same as Visilogic and other Vision apps. So yes you can select the remote TCP port number separately in each connection request, sam as you can do with the standard Unitronics applications. The download package for UnCmDrv1.dll includes some examples, the only one I can open is the Excel VBA example, which is set for serial port. However using the object browser, the port setting object is as follows:
  5. Hi Mat, With the V430 and V350, the port config details in the docs are the default config. If you initialise the ethernet card without overriding these, the 4 ports are initialised to these settings. You can override those defaults using the SOCKET_INIT block in the ladder, one SOCKET_INIT block per socket. This will allow you to set the consecutive port numbers as per your request.
  6. Hi, I am working with an issue on the Remote Operator App for iOS. The issue seems related to DNS. The following works fine: * iPhone connected to WiFi - the app connects to any active remote PLC I have tested with * iPhone connected to Cellular data, PC tethered to iPhone - PC Remote Operator connects to any active remote PLC I have tested with * iPhone connected to cellular data, app connecting to a remote PLC via it's direct IP address (not hostname) - OK Where I see the issue is with the iPhone connected to cellular data, and connecting a remote site using a dyn-dns hostname. * if I manually do an nslookup on the hostname, and enter that direct IP address into the app, it works * if I enter the hostname directly into the app and allow the app to do the NS lookup, the communication fails. I have peformed a packet trace from my phone for both types of connection. With the hostname connection, it appears that the app successfully obtains the IP address and attempts communication with the PLC, but is not successful. Hence I have confirmed the same underlying IP address is used with both the direct IP address entry and the hostname entry. However the commuincation works for the direct IP address, and doesn't work for the hostname. I have submitted this question to Unitronics support and they are working on it. I'm interested to know if anyone else has seen anything like this. Does anyone happen to have a test site set up using a hostname for access, rather than a direct IP address? Thanks, Simon
  7. Hi Neels, UniStream is only an SQL client. I'm not aware of situations where an SQL client can respond to requests. I have done some quick google searches and there are situaitons where two SQL systems are set up as master and slave where they can request data from each other, but in those cases both master and slave are both SQL servers, and the purpose is to keep backup copies of data. Just another thought, if the customer installed MQTT broker and client software on their SQL server, they should (?) be able to set up the MQTT client as a subscriber to the MQTT data, and it would push new data to the SQL databse. The PLC would only publish data as it was relevant, which would optimise the data flow to the main SQL database. There should be controllability on the update rate at both the subscriber end as well as the publisher end. Going back to the idea of the UniStream connecting directly to the main SQL databse, It is possible to set the PLC to only push data to the SQL server on change of state. Maybe the server could send an SNMP packet to the UniStream that would trigger an SQL push? As I said, just some thoughts, based on general principles and completely un-tested... Simon
  8. Somethine else I do in these types of cases is make very simple test programs. For example you say that certain binary images appear as if both images are bing displayed. Create a very simple program that just has the binary image object and enough logic for you to control the change of state for the linked variable. Anothing point to note, are you doing anything with manual screen jumps or screen refresh/re-load? That can also create some weird effects. For example, a screen jump or screen refresh is linked to a direct contact, when the contact turns on, it tried to refresh the screen every scan.
  9. I've also been reminded (by another member of the forum) of the value of performing a full Initialise and Reset. The general idea here is to wipe everything out in the PLC and re-load a clean project from scratch.
  10. I presume you have been developing this program and downloading changes as you go. I would suggest you download a completely blank project to the PLC, then re-open the project above, do a "Build All" and download the full project again.
  11. I can say that the solution to this ended up being straightforward and not related to iOS or app compatibility issues.
  12. I did quick fiddle with the data in Excel. It looks like an offset of -45 counts and then a linear scaling error of -2.4% over the range of the input. Fluke(ma) Actual Count Expected Count Count Diff. Data without offset Percentage Error 4.000 -45 0 -45 0 6.000 954 1024 -70 -25 -2.44% 8.000 1954 2048 -94 -49 -2.39% 12.000 3953 4096 -143 -98 -2.39% 14.000 4957 5119 -162 -117 -2.29% 16.000 5951 6143 -192 -147 -2.39% 18.000 6951 7167 -216 -171 -2.39% 20.000 7949 8191 -242 -197 -2.41% I would not expect this as normal behaviour. The spec sheet gives accuracy of 0.4%. However, apart from the offset and scaling errors, the data looks quite clean. Usually a bad input won't even perform this well. Were you able to test with the field wiring completely disconnected from the analogue module (that includes the commons as well as the signal lines)? I notice you are a few versions behind on UniLogic, the current version is 1.28.34. I doubt the issue is version related, but I would suggest upgrading at some point. I'd be pushing into a more thorough diagnosis of the hardware and field wiring first. Hope this helps,
  13. In line with the suggestions by Ausman, have you also tried opering the Modbus with just the power meter and UniStream together, no other devices? I haven't really seen any issues with other devices not running the same Modbus standard as Unitronics. One thing I do notice is that different vendors use different notation for the wiring - eg A,B, D+, D- . I have seen different vendors use opposite notation. It's easiest to sort this out with two devices at a time, and sometimes the solution is as simple as swpaping the wires. Also when you get drops, what are the error codes telling you? Are they timeouts (no comms), or is the power meter communicating, but returning an error code? My experience with power meters (Crompton, see below) is that they use 32-bit floating point values, but the Modbus address space works on 16-bit words. Hence only every second Modbus address is valid. Also beware of the +/- 1 offset. Unitronics calls the first register as 0, whilst some slave devices call their first register as 0 and others call it 1. Also if you a trying to read only 1 value, you will need to read two consecutive modbus registers. If the power meter is using 32-bit values, trying to read only a single 16-bit value is likely to generate an error. I end up doing a fair bit of experimentation to find the right combination. Disclosure: My company is a Unitronics distributor and also a distributor of Crompton power meters. I have set up several demos with UniStream to a Crompton meter and got them working on both Modbus RTU and Modbus TCP. I have also assisted customers with setting up many different Modbus devices on Unitronics PLCs. So I could say Crompton meters work fine. However If you can't get 3 other brands to work, then I would be looking at the setup rather than the brand of meter.
  14. One option for WiFi is the Moxa AWK1137 (disclosure - my company is a Moxa distributor, as well as Unitronics). It's not the cheapest device that can do this but is designed for long-term reliability in an industrial environment and is well supported. You say the system already has an unmanaged switch "and thus has not been connected to our network". I'm not sure exactly what you mean by that. The fact that the switch is unmanaged doesn't immediately explain why it can't be connected to the network. I assume you can't connect to the network becuase the existing switch is a cabled switch and you need wireless - is that the case?
  15. I'm not aware of anything built-in. I do it manually, and when it comes up as an issues I advise others to do the same. Do it at least once per day, and ecah time you add a new chunk of functionality, or attempted bug fix.
  16. Hi @Cara Bereck Levy I would agree with the above from @Joe Tauser and @Ausman. The way the ranges are currently expressed in the datasheet are scientifically correct (15 bits : 0.61uA/Bit(0~20mA), 0.49uA/Bit(4~20mA)) , but takes a few steps of logic and caulculation to turn that around to something that is useful for the programmer. It should be expressed in terms that apply directly to the programming, as @Ausman has done. The sign bit is meaningless if the signal is always positive or zero.
  17. When using the high-speed input there is dedicated hardware to peform the pulse counting and frequency calculation. This is independent of scan time. The high-speed counter input is looking only for edges (or change of state) of the input signal. So does not matter if the one pulse per rev is the closed or open state. Just to re-state again, you are registering 190Hz with the sensor in the closed state. Following from the above point, this would suggest the sensor circuit has some noise on it that is being counted. I looked again at your first post, you say "black wire to I0, the blue to 0V and brown to common". I should stop there, brown wire is positive supply and should go to 24V. The fact that you see the LED switch seems to indicate the sensor is powered correctly, but it pays to double check. The other thing you can do is replace the sensor with a piece of wire - that is, put a piece of wire into I0. If you hold the free end onto the 0V terminal or leave it open circuit you should get 0Hz. If you rapidly touch it on and off 0V you should get something like 5-10Hz (do this safely of course, perhaps a mechanical switch could be used that you can flick on and off rapidly). Hope this helps,
  18. I would also suggest interposing relays, I think that is an all-round better option than introducing another programmable device.
  19. I think the clue about the span of values is here: 15 bits : 0.61uA/Bit(0~20mA), 0.49uA/Bit(4~20mA) The uA per bit is different depending on the range. I think that the mention of the sign bit is superfluous (and therefore confusing) as the module only has unipolar inputs. I think experienced Unitronics users are conditioned to expect a 4...20mA analogue range to not use the full span of the digtal word, based on experience with other Unitronics families. But as Flex has commented some Vision modules (mainly outputs) will use the full digital scale regardless of whether they are 0...20mA or 4...20mA.
  20. The other thing you can do to score a few confidence points is to use a PC-based Modbus tool. There are master and slave programs available. One example as follows: https://www.win-tech.com/html/demos.htm You can test: Unitronics PLC master to PC-Simulator Slave PC-Simulator Master to VFD Slave You can also try PC-Master to PC-Slave and even PLC-Master to PLC-Slave (using two COM ports). In each case the goal is to confirm that at least one side of the communication is working OK, by process of elimination. The V570 also has a built-in COM port sniffer, so you can monitor the traffic. It is accessible thorugh the info mode. It will be all HEX data, but at least you will be able to see if the drive is responding or not, as the TX and RX data are displayed separately. The issue may be as simple as just swapping RX and TX wires. The most frustrating thing about debugging comms is the way it can all just sit there not working, and you feel like it's all a dark secret. Use any trick you can to "open up" the system and let it show you where the problem is.
  21. No worries, my pleasure. And yes, local Modbus comms is definitely another complicating factor. It's a bit like the old riddle, I have a fox, a chicken and a bag of wheat, I need to cross the river, but my canoe can only take 2 things at a time...
  22. Note also that you can use an ethernet modem and a serial modem simultaneously on the V350. I have seen applications that do this. The obviously (and only) downside is the need to have 2 modems and 2 SIM cards.
  23. Hi Joe, I've worked with modems and communications on Unitronics for many years. They do certain things extremely well and we have seen many successful applications. More detailed comments and advice are below: 1. Ability to log in to the PLC Web Server - This is the most difficult of your 3 things to achieve over GPRS. You need at least a public, dynamic IP address. Once the GPRS connection is active, you then need a way to find the current IP address of the modem. One option is to get the PLC to send its IP address to you in an email once it has connected to the network. Note that this is not secure, anyone who figures out the IP address and what device is at the oter end can start to try and access it. 2. Ability to send a weekly csv. file via email - this works reasonably well, the nice thing about sending emails is that the IP address does not need to be public. However with the Vision family, you need an email server that can accept unencrypted connections. 3. Ability to send text msg for alarms - by far the easiest thing to do with the EHS6T and a V350. I would only recommend this modem to do SMS and nothing else. Trying to mix GPRS and text messaging is not simple, as the PLC to Modem communications has to be reconfigured for each mode (SMS or GPRS). Overall I found GPRS to be a fragile and difficult method of setting up a data link. If you want to use the web server, I would recommend switching to an Ethernet modem, which would also require the V100-17-ET2 card for the PLC. With ethernet you can do things like Dynamic DNS or VPN as a way to maintain a connection to the unit's IP address. However when switching to Ethernet, there is no easy way to keep using the SMS feature at the same time. The simplest workaround for that is to send all alarms by email, as most people now receive emails on their phones. SMS is beleived to be "reliable" but the SMS standard allows 24 hours delay in delivering the message (I heard a rumour that has been increased to 48 hours). In short, from my experience, it's not possible to do all 3 tasks that you have described with a single device/single connection, using just the standard built-in features of Unitronics. If anyone can improve on my advice, I'm happy to be corrected.
  24. Hi Joe, It sounds like you are setting up GPRS. There are a number of steps, and Unitronics provide an example program. A lot of PLC programming tasks can be solved by trial and error, I don't recommend that approach for GPRS. Find the example and understand it. They are installed with the Visilogic installation: C:\Program Files (x86)\Unitronics\Unitronics VisiLogic_C\Examples\Version 900\Project examples\Communications\GPRS Specifically on your question. the APN is entered in the "GPRS Register to Network" function block: I hope this helps,
×
×
  • Create New...