dave

MrPLC Member
  • Content count

    44
  • Joined

  • Last visited

Community Reputation

1 Neutral

About dave

  • Rank
    Sparky

Profile Information

  • Country United Kingdom
  1. 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
  2. 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.
  3. 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?
  4. 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
  5. 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.
  6. 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!
  7. 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.
  8. 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.
  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. 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.
  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 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
  13. 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.
  14. 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.
  15. 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?