MrPLC Member
  • Content count

  • Joined

  • Last visited

Posts posted by bgtorque

  1. Hi all. My experience is using Studio5000 / RSLogix5000 to program CompactLogix PLC's. I need to use a basic (cheap) PLC to get data from a Control Techniques Drive (about 9 DINT's for Speed, Torque, etc) and then display on a PanelView Plus 600. Its a bit extravagant to use even a basic CompactLogix for this, so I believe the most basic AB solution I can go for is the Micro820.

    In Studio5000, to add in CT Drive comms, I simply just add a Generic Ethernet Module and setup the IP address of the CT Drive and the Connection Parameters and that is pretty much it. I look in the Controller Tags and there is my DINT array that I can interrogate for the information. Very simple.

    Anybody any clue how to replicate this in Connected Components Workbench for the Micro820? I cant seem to fathom it out at all?

    Just to clarify, I am not doing any control of the Drive from the HMI or Micro820, merely displaying on the HMI parameters like speed, Torque, etc.


  2. I've seen that some people have had success in communicating from an Arduino to a CompactLogix controller via DF1.  I am using an L33ER controller that I don't believe has a DF1 port. Is anyone aware of a method for setting up comms through EtherNet/Ip?  My application is a simple control interface with about 8-off momentary push buttons to send onto the CompactLogix via the Arduino, plus 3-off 1024 encoders that send a setpoint, and also another 8-off DO from the Arduino to switch on lamps when teh buttons are pressed. I wouldn't be doing any control with the Arduino. I could do what I want with a cheap Micro830 for ~£230 but its just too big to fit in my interface plastic moulding.  Currently it's all hardwired and I am looking to get rid of the long lengths of unwieldy cable, hence the push to run everything down an Ethernet cable.

    I guess I could look to install a DF1 gateway, like this from Prosoft, but if I have EtherNet it would seem a shame since all other comms are running that way?

  3. Hi, I am looking at seeing if we can move our current AB PanelView Displays to the rear mount Weintek MT8070iER1 HMI. We use CompactLogix PLC's and this would be used to drive the display.  I would like to have a solid grey rectangle that is controlled by PLC tags for both its visibility and its size.  

    1. Visibility - a simple bit 0 or 1 to decide whether it should be visible

    2. Size/Scaling - I would like the ability to have the rectangle increase in size along a single axis (vertical or horizontal) based on the the value of a REAL tag (call it Tag1) from the PLC.  I would like to define the MAX and MIN values of Tag1 by defining a changing percentage, ie at min=0 and at max=100.
    EXAMPLE - Vertical Scaling: If the rectangle is 400pixels wide by 200pixels high.  I would like to define that the height of the rectangle is 0pixels if Tag1=0 or 200 pixels if Tag1=100. 

    I thought the moving shape option would allow me to do this, but it would seem that I cannot select the tag I would like to use (in this instance it is Program.VSD1.TQ_Clamp) as it is not visible, although it is visible if I want to select it for a numeric object, for example.  I've attached the EasyBuilder Pro file and the Exported tag file from Studio5000.  Also a couple of screenshots from how I achieve this in FactoryTalk for AB PanelView HMI's.

    Any help and guidance would be appreciated.






  4. Hi All

    I'm testing out the EasyBuilder Pro software as looking to move to Weintek HMI's (specifically MT8070iER1 - rear mount).  I am using an AB L33ER CompactLogix controller.

    The EasyBuilder Pro manual suggests that there is an "Import Tags" option in the System Parameter Settings window, however, I do not have that, just "New", "Delete" and "Security".

    Can anyone give me any pointers on how to import my Studio (Logix5000) CSV tag database for use in EasyBuilder Pro?

    Any help appreciated, i'm sure i've missed the point somewhere. 

  5. Just now, pop29684 said:

    @bgtorqueHow did you calculate your values? Did you assume rpm and then calculate thrust? Did assume thrust and calculate rpm? Did you just arbitrarily pick numbers?

    In my example above they are just random numbers to illustrate my question.  So the linear/non-linear relationship should be ignored.  In reality I will be reading rpm and thrust and I just want to dump the corresponding thrust values in an array when at speed so I can control the thrust to the same conditions in an event where I lose the communication from the customer PLC who is defining the thrust vs. a particular speed.

  6. Here's an interesting one.  I have an S7-300 and am using TIA Portal V13.  I have a pressure/flow (p/Q) control valve for oil pressure for controlling oil with feeds a thrust pad bearing, with respect to the thrust generated by the speed of the driveline.  The oil supply has an accumulator that should be good for around 2mins supply and the PLC and control valve are all UPS controlled.  So, should power be lost or the oil pump/drive fails the accumulator will ensure the oil supply for (hopefully) enough time  to keep the thrust under control to bring the driveline down to a stop.

    I am monitoring the driveline speed, the thrust/oil pressure/oil flow.  I would like to continuously capture the characteristics of the speed vs. pressure/thrust relationship during normal running, so that I can use this data to command the correct pressure in the pad as the speed reduces.

    i.e as the driveline increases in speed from rest up to say 2000rpm I might have (i'll use coarse steps)

    0rpm                               0kN
    500rpm                            1kN
    1000rpm                          3kN
    1500rpm                          7kN
    2000rpm                          12kN

    So if I lose pump power at 2000rpm then teh driveline will start to coast down and I want to ensure that I am controlling thrust at 12kN initially and tehn as we transition down in speed it hits 1500rpm so I then control to 7kN, and so on.

    Ideally I would like much finer steps, 100'rpm or even 10's rpm but am practical in the amount of data would need to be stored, so would find a sensible limit.

    What would be the best practice in achieving this in terms of ladder code (ideally ladder as that's want I have most experience of).  I'm guessing dumping the data to an array of x vs. y in some way?  I could write something simply if it was just for a few points like I have described above as it would be a line of code for each.  But lets say my speed is upto 20 000rpm then this would be a lot of MOV instructions and IF or == statements.  There must be an elegant way of coding this simply that eludes my knowledge?

    Any help would be appreciated.


  7. In my program my program tags largely exist in a couple of a data blocks.  There are a number of tags in there that the operator may need to get to in order to change the value, so for alarms the high and low alarm and trip levels (so that is 4 tags per channel), or for the scaling calibrations the gain and offset values.  

    I am struggling to get my head around ‘Start Value’, Default Value’, ‘Retain’ and ‘Setpoint’ values.  I have mapped over the alarm, trip and calibration tags to the HMI and can change the values with a mapped I/O field, but when I go live I can see that these values are just held in the ‘Monitor Value’.  Should the PLC go off-line then it will then go back to the default or ‘Start Values’.  I guess what I’m asking is how can I have an operator with access to the HMI, permanently overwrite a tag starting value that the PLC will hold in its non-volatile memory?

    as always, cheers for any pointers.

  8. Ok, thanks for the suggestions.  I have looked at my Main Routine [OB1] and I have a couple of networks.  I have dragged each program block on the networks.  When I go online and monitor the Main Routine [OB1] a number of the program blocks are good and highlight with the solid green line box.  A few however are highlighted with a dotted blue box, this includes the routine that contains the Digital Output program.  Could this have a potential to disable the 24V output?

  9. Hi all

    I'm having issues with the Digital Inputs and Outputs.  I have a Digital output that I am clearly switching  on, I can see the output is TRUE when I switch on to monitor the channels, likewise I can switch it off and it goes to FALSE.  If I measure the output directly coming out of the back of the module (I am looking at DO.2, so the third one which is on terminal 24) I get 0.8Vdc, regardless of whether or not I am TRUE or FALSE on that output bit?  cAn anyone guide me as to why this might be the case and how I would go about enabling the module so I get a 24V Digital Output?

    I have 24V on terminals 1, 21, 11, 31.  I have 0V on terminals 10, 30, 20, 40.

    As I look at the all the modules I have, including analogue IN/OUT's I have no LED's on, other that the CPU RUN and DC5V.  However, all the analogue channels I have configured are working.  I would've thought I should see an array of LED's on indicating channels are in use?  If I connect a wire to one of the DIG IN channels and directly to 24V the LED for that channel goes green.

    I am completely new to Siemens and come from an Allen-Bradley CompactLogix background.

    Any help would be appreciated.


  10. Hi All
    I'm from an Allen-Bradley background and am having my first experience of Siemens.  I have an S7-314 that I keep needing to manually cycle the Run/Stop switch to get it into run.  Looking into the diagnostics I get the following error:

    1 of 351; 
    Event ID: 16# 3842
    Module OK
    Module type: Distributed I/0s
    Input address:  2042
    Channel information available
    Requested OB: Diagnostic interrupt OB (OB82)
    OB not found, or disabled, or cannot be started in the in the current operating mode
    7/15/1994 17:36:13.322

    Can anyone guide me where to look to solve this?  Thanks,


  11. Hi All
    I'm from an Allen-Bradley background and i'm using an S7-300 on a project.  With scaling a channel in AB I had a Scaling Block setup which would take in a raw input (counts) and multiply it by a scalar to return a value in the appropriate engineering units.  I then had an ADD block that would let me add in an offset. So to calibrate the channel, say for a pressure transducer I would simulate a voltage or current input and note counts and then a different voltage or current and note counts again.  Then looking at the gradient vs what those currents or voltages should represent in kPa I would derive a scalar to apply to the counts.  After applying this scalar I would then simulate another pressure and apply the appropriate +ve or -ve value in the offset to get the correct reading in kPa.  So, all I would need to do in the HMI is allow the appropriate calibration engineer access to change the scalar and the offset values (for calibration you would make the offset 0 and the scalar 1 initially and then do the calibration).

    With TIA there is a Scaling function already under the basic instructions called scale.  This looks like you stipulate the theoretical high and low value of the sensor (say 100kPa to 1000kPa) and the block works it out for you.  My question is really, how to you calibrate this in reality, since that pressure transducer might return 4-20mA = 87.558kPa - 1057.849kPa, for example?

  12. Hi all and Happy New Year.  I have a a Siemens S7-314 CPU and a number of I/O modules.  Powering the PLC is a PS307 120/230V (10A) PSU.  As a fail safe, I also have a SITOP UPS, comprising of:

    - SITOP UPS1600 (10A) PSU

    -SITOP PSU100S 24V (5A)

    - SITOP UPS1100 Battery 


    My issue is with connection between the SITOP PSU100S, UPS1600 and the PS307 PSU.  My devices need around 8A, hence the 10A PS307 and UPS1600, but I was told that I could have a reduced size for the PSU100S, since it is only trickle charging I guess?  Can anyone guide me to a connection diagram that shows the power connections for these 3 devices?  I've since talked again to Siemens and they've suggested omitting the PS307 and powering the PSU direct from the PSU100S, but this will not have sufficient current for all of the devices that I was intending to supply.



  13. I am using AB CompactLogix PLC's. I'd really like to be able to log numerous channels (maybe up to 50) on my laptop during commissioning (runs are typically 30 mins to an hour). I envisage creating move instructions to some register for ethernet comms to my laptop (Win 7 - 64bit). Is there any software that I can configure to interpret and log the data if I connect my laptop ethernet port to the PLC network? I'd really like to be able to do this without additional data logger hardware (such as Red Lion, etc), and open source software would be ideal. Obviously this is a big ask, is it also unrealistic? I know that I can use trend screens etc in RS Logix, but it is not always possible to have a machine with RS Logix around, plus it is not very configurable. Cheers.

  14. Hi I have a customer who wants to communicate some setpoint information from their Siemens S7 PLC to a CompactLogix L32E PLC. I have installed a Prosoft PLX32-EIP-SIE for ethernet-to-Siemens Industrial Ethernet comms. On receiving a setpoint in from the S7 I then close a loop with some speed feedback in the L32E with a PID. I don't have any access to a Siemens S7 (or software) to test that the comms is working before the unit is shipped, all I have is the CompactLogix hardware. I do have a second CompactLogix PLC / PanelView HMI, but I dont think that this will give me the comms to talk to the SIE port in the Prosoft. I was hoping to have a simple slider on the PanelView to change an integer value to simulate the setpoints coming from the S7. Does anyone have any idea how I might implement this with AB hardware / RSLogix / FactoryTalk?

  15. I have an analogue channel coming in which I run from a custom ‘Scaling Block’ that consists of first multiplying the raw counts by a gain value to get engineering units and then adding an offset value for calibration at zero. This works fine and has been used on many projects and analogue channels. In this particular instance I want to run my raw input through the scaling block, but I am scaling to give an output percentage. This output percentage is a real floating number and I can see at least 6 decimal places most of the time. I now want to run this percentage through another scaling block to convert to engineering units (torque in Nm in this instance) depending on how I have the driveline setup. As soon as I multiply by a gain term (0.025 in this instance) my final tag (REAL Floating Point) is only seeing 3 decimal places and stepping up/down in .025Nm steps. The offset in the final scaling block is zero since the channel was calibrated when in percentage output during the first scaling block. Where have my extra decimal places disappeared to? As usual, any help / advice is greatly appreciated. The process is shown as SBK1 then SBK2 and Scaling Blocks (SBK) logic are shown in SBK_Logic, all attached. Scaling block code is just 2 rungs: MUL(Raw_Input,System_Gain,Scaled_Output); ADD(Scaled_Output,System_Offset,Scaled_Output); Thanks, BG

  16. Ok, I ended up creating 100 rectangles 1 pixel high eachand then setting the visibility based on being => my analogue output %. thus for box one it was set as [ouput]=>1, for box 39 [ouput]=>39. This then meant I could also set the colour to change based on whether the output was in alarm or trip level limits. I also found a really easy way to do this with a simple rectangle by using the 'fill' option which does exactly what my original question was. My homebrew level gives me the option of colouring and blinking based on being in alarm and trip levels though.