dave

MrPLC Member
  • Content count

    44
  • Joined

  • Last visited

Everything posted by dave

  1. I'm using a 1769-L32E cpu with a rackful of regular I/O and in my program I want to read the actual scantime from the start of one scan to the start of the next, for example. I am using GSV PROGRAM MainProgram LastScanTime to copy the scantime in microseconds into my register "scantime_us". It sort of works but gives me an error of about 40%. If I measure the actual scantime by having a register increment by one on each scan and see how long it takes to count to 30,000 it gives me about 4mS average scantime. The above GSV instruction only reports 2.4mS however. I assume this is to do with overhead like I/O scanning and comms. timeslice setting (currently set to 20%). Is there another simple way I can get the average actual scantime with reasonable accuracy, please?
  2. Hi - Using Panelview touchscreen with Compactlogix plc and programming with FactoryTalk View Studio 6.00. I want to have a button on one of my screens which will open a pdf file, ideally full screen. I see that ActiveX is listed under objects and that Adobe PDF Reader is listed in its drop down box. Can anyone guide me on how to make a button launch it and where do I tell it the filename and path? I only need to view a single file with some means to close Adobe after and return to the normal hmi application. Many thanks as always for any help/advice!
  3. Two plc programmers with extensive and professional experience of well structured and annotated programming available singly or together for contract work. We mainly work with Rockwell, Siemens, Mitsubishi, Modicon, Panasonic with various HMI and SCADA where required. We've worked in many different industries including food/beverage, printing/packaging, ovens/furnaces, machine tools, water, nuclear and offshore. Ideally working from our own office with visits to site as required, we are happy to take on large or small projects on an hourly, daily, or fixed price basis. We are based in Leeds/Wetherby UK but happy to discuss any requirement, large or small. LinkedIn profile with brief career history: http://www.linkedin.com/in/davehagon Company website: http://www.systac.co.uk
  4. MP277 HMI Language Switching

    Many thanks! The script option using a single toggle button works a treat. Sorry for late response - I've been away on site.
  5. MP277 HMI Language Switching

    This is hopefully an easy one for some Siemens guru to put me right. I am using an MP277 (keys version) and I need 3 operator languages. I have added the 3 languages and configured a function key to toggle round them and the screen texts all change fine. So far so good. What I would now like to add is a simple graphical output field which displays the national flag for the current language. I have configured the output field but do not know how to make it respond to the currently selected language. I assume I have to create an internal tag and read into it a numeric value relating to the selected language somehow. Please help?
  6. Two plc programmers with extensive experience of well structured and annotated programming available singly or together for contract work. We mainly work with Rockwell, Siemens, Mitsubishi, Modicon, Panasonic with various HMI and SCADA where required. We've worked in many different industries including food/beverage, printing/packaging, furnaces, machine tools, water, nuclear and offshore. Ideally working from our own office with visits to site as required, we are happy to take on large or small projects on an hourly, daily, or fixed price basis. We are based in Leeds/Wetherby UK but happy to discuss any requirement. LinkedIn profile with brief career history: http://www.linkedin.com/in/davehagon Company website: http://www.systac.co.uk
  7. Thanks Ken, I've downloaded the manual and see the part about the PDF reader. I seem to be stuck at trying to configure the Program Launcher. I located the file and followed the help instructions to place an ActiveX object on screen, browse for the .ocx file and register it. As soon as I do that and click OK it vanishes. I need to set its connections to the PDF file location, don't I? Should it now appear in the ActiveX dropdown box as a selectable device? I'm floundering a bit here. Once I've found it, how do I make a pushbutton trigger it? Use an internal tag and toggle it with a normal button? Sorry to be a pain.
  8. Thanks Bob. The chart recorder is, of course, located quite some distance from the plc. Sod's law, as they say. Ken's idea might fly but have to see if we are able to mess with the SCADA first.
  9. Using a Yokogawa chart recorder DX2030 connected via Ethernet to an L35 Compactlogix PLC. I would like to mount the chart recorder on the same Ethernet network as the plc cpu, hmi and factory scada station. I need to read about 15 temperature values out of the plc and send them to the recorder. I have only seen notes referring to third party modules to achieve this (such as Proface MVi69-Mnet and so on) which work using Modbus protocol. Is there a way of making this work on the standard ethernet port of the cpu? Plant geography and costs make the added module solution a bit clumsy.
  10. That's an interesting thought - trouble is, the SCADA wasn't supplied by us (not even sure what software it uses or if the client would be happy for us to modify it). The chart recorder is situated a long way from both the plc and SCADA office in any event.
  11. I'm using Logix5000 v17 with a Compactlogix L32 controller. I want to use a single subroutine with input and return parameters to control a set of 22 identical devices. I understand the principles involved and have created my routine, created a set of local program variables for it and plan to call it repeatedly from my main program using JSR, each time with a different set of controller tags. The subroutine has roughly 18 input tags and 18 output tags of various data types. My question is about input and return parameters and the SBR/RET instructions in the subroutine: Where I have a simple input (for example, a motor overload contact) that is clearly an input parameter and goes in the SBR box. Where I have a simple output device (for example, a solenoid valve) that is clearly an output parameter and goes in the RET box. But, where I have an intermediate math result, or a temporary coil which is latched using a maintaining contact, does that need to go in both SBR and RET lists? Since the subroutine needs to know the last state it left them in, I assume they must be present as input parameters as well as return parameters. In Siemens, there are IN, OUT and IN_OUT parameters for blocks ... here there is only INPUT and RETURN. I have no controller handy nor simulator to test the program at this time. When I enter the same coil bit address in the subroutine's SBR and RET boxes and then do a verify, it flags up a duplicate destructive bit warning. I haven't been able to find a manual or app. note which adequately explains this operation so am hoping one of you resident gurus will be able to fill me in off the top of your head. Thanks in advance for any guidance!
  12. Many thanks to all who answered my plea for advice here. After careful consideration, I decided to go with the majority and just write 22 separate routines. For monitoring/debgging alone it is clearly simpler and the spadework only needs to be done once after all. I spend a lot of time on Siemens Step7 where the prevalence of functions blocks and instance data blocks makes for a more elegant solution, but even then some of the above criticisms apply. Fair enough and thanks again to all.
  13. Many thanks to everyone for their contributions here. I have learned a few facts and tricks which will be very useful. I have been browsing around in the background and discovered this simple little gem for measuring actual average scan time (see attachment). It only updates every 1000 scans, but gives a quite accurate average value which is adequate for my routines to use. The next step is to make a true rolling average by getting the total time for the last 1000 scans on EVERY scan. Using this avoids any need to prioritise tasks; as I said above, it doesn't matter what the scan time is, or if it is varying a lot, as long as I know what it is. Thanks again! Logix_scan_eval.pdf
  14. I do a lot of work in heat treatment, forging and drawing/insertion applications. Over a long period of time I have evolved several bespoke software 'modules' to do specific tasks and they work extremely well in Siemens and Logix500 systems. The blocks are for things like 2nd order digital filters, adaptive derivative functions for impulse/bounce response, precision timing of burner flame and exhaust accumulation, so on and so forth. Unlike the standard PID blocks and similar algorithms built into many plc's, these update on every program scan and need to know the elapsed time interval since last scan to work properly. Essentially they are working at the bandwidth limit of a typical plc but compare favourably with other people's custom hardware and so easy to moitor and adjust. On migrating into Logix5000, i find it all works OK but I'm seeing wrong response rates due to false scantime measurement. I can put in a juggle factor to roughly correct it and it's almost good enough but I'd like it as good as it is on the older kit.
  15. Hi Bob - Yes my definitions could have been more lucid. The scantime I am interested in is the total interval between rung 0 in the main task and the next rung 0 in the main task. So this interval includes the time to carry out all ladder logic, update the I/O, plus any comms. and general cpu 'housekeeping' (in other words, logic + overhead). Using GSV to get LastScanTime seems to give me the time to do the ladder logic but not the rest of it. Your suggestion to use the real-time clock might work, grabbing the value each time we pass rung 0 and calculating the change. However, I would like to know the scan-time in microseconds, or at least fairly accurately, so may have to do this measurement over several scans and work out the average or something. I'd hoped there might be some secret way to get overall scantime straight into a register in microseconds. I can't think of any useful reason for knowing time spent in a given task apart from watchdogs for 'hung' programs. Thanks for the ideas.
  16. I am trying to write some code for an FX3U© plc using GX Developer 8.35M. I want to use floating point arithmetic and the manual I have for the FX3U says it is capable of it. I use floating point in GX Developer regularly when programming Q-series, no problem. But when I create a project for an FX3U I get no floating point instructions available. I can use FLT instruction to convert a single integer into floating point but not possible to do EMOV, EADD, ESUB, ECMP, etc etc. I have pored over GX manual and FX3U manuals and can't get to the bottom of it. I have even reinstalled my GX Dev. but all to no avail. Please can someone shed any light ? Thanks!
  17. My gosh yes - that works. How would anyone know to use DEMOV instead of EMOV and so on? The manuals don't mention it at all and EMOV works for Q-series. Thanks so much. Another black mark for Mitsubishi I'm afraid. Dave ---
  18. Yes, it does not allow me to enter those instructions as shown there. Is it because I have version 8.35 do you think? Nothing in the manuals suggests any reason why it shouldn't work.
  19. Thank you, yes I know how to enter the instructions. As I said above, I am used to using it all the time in Q-series. But when I configure a project for FX3U it does not alow me to enter those instructions. If I try to enter a box instructions and type in, for example, EMOV D4 D6 it does not accept it. However, DMOV D4 D6 is perfectly fine. I am perplexed.
  20. Trying to reinstall RSLogix 5000 Enterprise following a major pc crash, format and fresh Windows XP Pro SP3. I've installed versions 10, 11, 12, 13, 15, 16 and 17 and all looks good during the installation process. However, when I try to run it, I get 'Fatal Application Error'. The error log does say V17.00.00, source file unknown, line number -1, function/method: unknown. The logged error code is 0xe0434f4d for which it says there is no message available. I updated my .Net framework to version 4 as one forum suggested that may be related to the problem, but to no avail. I do not have a paid-for support contract with Rockwell so would be most grateful for any pointers here. I am using same install disks and licenses as before my crash when it all worked fine, so I'm assuming there must be some difference in the Windows environment somewhere ... Thanks in advance for any ideas!
  21. I'm using a CompactLogix plc with a Panelview Plus touch screen. I have several Numeric Entry Enable objects reading and writing to INT and DINT type integer registers. In one example, I may have a value in the plc tag of 1000 and want to display this in the label as 1.000 Similarly, if the operator wishes to change the plc value to 1500, he would enter 1.500 So I need a scaling factor of *1000 for write and *0.001 for read. A classic example is reading and writing values to a timer preset in real seconds, rather than the default milliseconds. I also have other situations requiring integer scaling similarly. I have tried every combination of connection, numeric and label set-up and can not get what I want. I realise I can do this using macros to scale the value into local HMI tags, but that seems a very longwinded way as I have many of these to cope with on various pages. Anyone done this before and have any tips for simplifying it? Any help gratefully received. Thanks.
  22. I am using RS Logix5000 17.01.00 CPR9 SR1 and wish to use the PIDE enhanced PID instruction. I understand that this has to be configured using function block editor but I don't see that option when I try to create a new program in my periodic tasks routine. If I copy a PIDE block across from someone else's sample program, it appears greyed out and says I don't have that language installed. I have searched the Rockwell site without success for information about how to install the FBD editor. Is it a bolt-on addition to Logix5000, or a higher version than the one I have? As usual, it is a rush job and I just need a quick way of configuring three PIDE blocks and ideally the means to autotune them in a baking oven application. Thanks for any pointers, guys.
  23. Know-How Protection in Step7

    Can anyone tell me how to create function blocks or data blocks in Step7 with know-how protection please? I assume there is a password involved but can't find anything in help about it. On creating a new block, tab2 gives the tickbox option for knowhow protection but it is greyed out. Any guidance mujch appreciated.