Jump to content

bobnorway

Members
  • Content Count

    40
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by bobnorway

  1. what is a better forum? I can't follow this now.
  2. I think this problem is not a very good fit for a newbie. Decoding a large variable ascii transmission could better be done with a unit which has more string tools for handling the data blocks. Perhaps then sending just the extracted value to the unitronics. I assume it is always the same ODBIS code value you require? Incidently the documentation says the telegram is sent every second not every 7 seconds.
  3. I agree with Flex727 a file is as delivered to the customer should not be changed, updated or modified. looking at a file and exiting without saving is not modifying it. version control is best done with date and time. what if you bought a house and the bank changed the date after you had signed the contract?
  4. add the values from first byte to the last byte to the sum. (1+2) H0b + H00 = H0b (S+3) H0b + H01 = H0c (S+4) H0c + H00 = H0c (S+5) H0c + H00 = H0c (S+6) H0c + H00 = H0c (S+7) H0c + H00 = H0c (S+8) H0c + H00 = H0c (S+FF) H0c + Hff = H0c mask off values larger than one byte) (S xor 3c) H0c xor H3c = H30 The H3c is probably to ensure that the check sum which is the last byte is not zero
  5. PLC PID is a mathmatic function not hardware based. Most PLC PID implementations are for regulation 0 - 100%, or reverse for cooling. 100% of 'what' to do 'something' is not realy their bussiness. This makes the PID function "universal". It is your job to scale the "footballs per day " PID input to 0-100%, and then scale the PID output from 0-100% to "footballs". In your case with the PID output do a simple scaling (PIDX * 2) = 0-200% then subtract (PID2X -100) gives a range of -100 to +100 have a good day.
  6. We had a similar problem a while back and ended up puting an optical isolator between the sensor and the Unitronics.
  7. I whole heartedly agree with "almost never", but as the saying goes "never say never" When working with most sensor devices you have a finite range 0-20ma = 0-100% or 0-10bar or 0-12feet using whole number math insulates you from idiot number results like a 1234% full tank, it simply can't happen. However you are trying to average positive and negative numbers, this would be a good place to have an exception to the rule of thumb and use real numbers. In "the old days" plc's could not handle real numbers well and used a long, long time to calculate them th
  8. Standards Once apon a time in the 'good old days' there was a standard to ease interfacing of different equipment together. It was called 'RS-232' for simple and effective serial interfacing. The voltage was a given always a -12 to +12 volt swing, a safe voltage with reasonable noise immunity. Then one fine day in order to reduce parts count it was implemented as 0 to +12 volt. Still almost as good and cheaper. As terminals became PC's the parts count was reduced so the readily available 0 to +5 volt was used as a power source. Not quite as good but even less expensive. T
  9. Not to discourage you but your task is difficult. RS-485 is a "recomended standard" it comes in both 2 and 4 wire versions. Mixing different suppliers, hardware interfaces, software protocols, all at once will be a challenge. Things like a the standard definition of high byte low byte position, and starting count position, is 4000 or 4001 the first byte? Neither Siemens nor Unitronics are "True" Modbus followers. Read up on what Modbus should be and what the supplier has actually implemented. All of these problems must be overcome before your own control logic can be
  10. a good rule is to make your pulse to a flag bit, Px -> M123 then the flag M123 will be the same for all of your program code. using a frequency function several places in the code could be a problem because it is asynchronous and can change during your program execution.
  11. heres a quick example of what I ment packing bits, the bit order does not have to be contigious It should be flexible enough so you can get something done. Test_Bits.ulpr
  12. perhaps by packing 8 or 16 or 32 bits to an uint then store a copy and compare with it. any value change can then trigger an unpack rutine to identify which bit changed.
  13. There is NO! warning given that updating pc software from 1.25 to 1.28 requires a re-load of the plc! A quick program change for me has evolved to an hour long hasle with: (1) ethernet cable no connection!, (2) usb cable no connection, (3) then to usb memory stick! First by pc programming a memory stick then plc programming from uniapps takes time! And if I didn't happen to find a 'correct' stick to do this with in my bag? Dear Unitronics the plc control is serious business! Damaging the customers production line costs money! You can NOT play with systems in
  14. check your grounding, analog inputs don't tolerate much common mode offset. the fluctuating siganal could be routed near a noisy source, for example a VFD motor. temporarily switch the two and see if the problem follows the sensor.
  15. I use only two symbols to build a valve being either light or dark (red or green) whatever you like then dynamicaly activate to show as on or off. By aranging several of these (like a clover leaf) you can easily make all the various valve types, one way, two way, 3 way etc.
  16. I quite agree on the PDF as absolutley the most usefull format, no argument there. However my problem is that in many cases the resulting PDF is unreadable. Failing on pagination for longer functions and on width for more complex ladder statements. The is no title field nor any page numbering to pull it all together. I would love to see some way to insert a formfeed in the code giving me a clear sectioning of functions. The poster option doesn't really help all that much and results in something impossible to use in a binder notebook. It may well be that Ado
  17. I think that Unitronics should put some real effort into this. Good documentation is a major part of good programming. Some control over boarders (top, bottom, left, right) and page numbers would help quite a bit. Print all fails miserably from function to function. Individualy printing each function does work better but takes great effort to get a readable result. That said the screen capture does give a better result quicker than many other plc/panel programs.
  18. I have problems printing program documentation. The program editor print does not seem to handle paging of modules correctly. Short modules are pretty reasonable but longer ones also get printed all on one page. This results in a scaled font of microscopic size which is unreadable. I've tried all the combinations of fit size scale etc. without success. Any tip on how to do a readable document?
  19. removed everything, rebooted, reinstalled. same problem it is possible to "fix" the SQLserver but it will not stay fixed. a new install of SQLserver checks ok but does not survive a reboot of pc. the unilogic diagnostic is not happy nor is the unilogic.
  20. Unfortunately diagnosts.exe did not help. The Fix button gets a green check on SQL Server then nothing. Next run of diagnostic shows the same two red crosses, (the fix did not do anything) Unilogic still hangs. Changed the exe and msi to administrator but no help.
  21. version 1.23.25 hangs after installation. 1 install is ok on a win7 machine. 2 failures, one on a win7 and one on a win 10. I have not yet been asked for the key number. the screen shows "loading components"
  22. yes TD is correct It will be easier for you to read the program if the elapsed timer is connected to a marker flag. then use the flag in other ladder rungs.
  23. For an explanation of byte/word order take a look at : https://en.wikipedia.org/wiki/Endianness
  24. Question 2. Look at this a binary to see it better. The representation of the value as decimal, octal, binary has no affect on the result. Your required value determines the number of bits used 4, 8,16, 32, 64 . breaking up words, bytes, bits is done with the Logic And instruction Using a mask like '0000 1111' will remove the bits masked by zero. resulting in only the bits masked with 1's Here the original high part disapears. Getting hold of the high word, byte, bits takes one more operation first mask the high part '1111 0000' then do a Shift Right 4. Giving a result of '0000
×
×
  • Create New...