Saturday, January 26, 2019

Seting up Hirschmann swtiches for the first time without Serial cable ?!

Do you also have to set up Hirschmann swtiches for the first time ?!? Well yes, they dont come with default IP address and if you, like me, dont have a serial cable to configure them, yes you are also F*** !!!

Well good news, you could use Hirschmann Discovery tool, HiDiscovery to set up the IP and configure the settings. It's very well explained in this video ...

OBS: you have to set a static IP on your ethernet adapter, if not the HiDiscovery will go NUTS !!!


https://youtu.be/YgvzeXgi43Y

You're welcome, it took me half day to find something good enough that helps actually ...

Thursday, September 7, 2017

IEC6113-3 Standard - supported programming languages

IEC6113-3 Standard - supported programming languages :
  • Instruction List (IL)
  • Ladder Diagram (LD)
  • Structured Text (ST)
  • Sequential Function Chart (SFC)
  • Function Block Diagram (FBD)
ABB Control Builder for various ABB products supports all these programming languages.

Saturday, September 1, 2012

Auto formatting the code in Visual Studio


- CTRL-A to select the whole text.
- Ctrl+K- Ctrl + F


 Before Auto Format
Ctrl - A selects the whole text
Ctrl K + Ctrl F, auto formats the whole text

Thursday, May 31, 2012

LCD Keypad Shield for Arduino Duemilanove, DealExtreme

If you have ordered "LCD Keypad Shield for Arduino Duemilanove & LCD 1602" from DealExtreme and are wondering about how to get this thing working without datasheet, you are in the right place :-) This product seems to be very similar(!) a product called "DFRobot LCD Keypad Shield for Arduino" and the Datasheet and even a library (LCD4bit_mod) for easy programming of it is available at following link, http://www.robotshop.com/dfrobot-lcd-keypad-shield-arduino.html, under useful links.

 The only issue with the library is that this is built for old versions of Arduino and if one to make it work with newest version (Arduino 1.0), then some parts of the code should change. First you need to install the additional library in your Arduino on your computer ( tutorial on how to install). Afterwards one should change the content of LCD4bit_mod.cpp 


#include "LCD4Bit_mod.h"
#if (ARDUINO < 100)
  extern "C" {
    #include   //not needed yet
    #include //needed for strlen()
    #include
    #include "WProgram.h"
  }
#else
  #include
#endif

String to Double issues in C# .NET


If you are simply using 

double test = Double.Parse("12.45");

and it doesn't work due to formating issues, here is the right post for you. Almost certainly you're using the wrong CultureInfo. Try specifying CultureInfo.InvariantCulture to parse in. I suspect it's currently assuming that "." is a thousands separator rather than a decimal point.

CultureInfo Invc = new CultureInfo("");
Invc = CultureInfo.InvariantCulture;

x1 = Double.Parse("12.45", Invc);

alternative:

x1 = Double.Parse("12.45", CultureInfo.InvariantCulture);

Wednesday, May 30, 2012

Tab Order in C# Windows Form - Visual Studio 2010

Setting Tab order in C# (Visual Studio 2010):

1 - Select View - Tab Order. This activates the tab-order selection mode on the form. A number (representing the TabIndex property) appears in the upper-left corner of each control.
2-  Click the controls sequentially to establish the tab order you want.
3 - When you are done, click View - Tab Order to deactivate the indexing.

Source: http://msdn.microsoft.com/en-us/library/bd16a8cw.aspx

Sunday, May 20, 2012

Flame Detector Sensor, Arduino Tutorial


This is a sample code to show how this cheap component from DealExtreme works with Ardunio (2.5$ with free shipping). These are very useful sensors for building [b]firefighting robots[/b]  :D  Look at the sample code for more info.
Sensor detecting match flame


purchase link:
http://www.dealextreme.com/p/arduino-flame-sensor-for-temperature-detection-blue-dc-3-3-5v-118075

OBS1: I assume this component uses Infrared and should be in direct sight to detect flame. This would work easily on big flames but for a match flame (very small), it could miss it.
OBS2: I read the values with analogRead but I guess they are readable with Digital Read as well as differences are quite high.
-------------------------
/*
  FLAME detector connected to Arduino
  http://www.dealextreme.com/p/arduino-flame-sensor-for-temperature-detection-blue-dc-3-3-5v-118075

 Developer:
 Akbar (Shahab) F. Moghaddam
 20.05.12

 Comment : I assume this component uses Infrared and should be in direct sight to detect flame. This would work easily on big flames but for a match flame (very small), it could miss it.

 */

//CONSTANTS
const int pinD0 = 0;
const int pinA0 = 1;

//VARIABLE
int A = -999;
int D = -999;
int readVal = 0;
boolean logging = false;
boolean fire = false;
boolean changed = true;


void setup() {              
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);
  pinMode(0, INPUT);
  pinMode(1, INPUT);
  Serial.begin(19200);
}

void loop() {
  initialAll();
  readValues();
  loggingProcess();
  if (changed)
    printState();
  delay(1000);// wait for a second
}

void initialAll(){
  readVal = 0;
}

void readValues(){
  A = analogRead(pinA0);
  D = analogRead(pinD0);
  fireCheck();
  if (Serial.available()>0){
    readVal = Serial.read();
  }
}

void loggingProcess(){
  if (readVal == 'l'){
    if (logging)
      logging = false;
    else
      logging = true;
  }
 
  if (logging){
    Serial.println("------------");
    Serial.println("SYUMMARY");
    Serial.print("A0:");
    Serial.println(A);
    Serial.print("D0:");
    Serial.println(D);
    Serial.println("------------");
  }
}

void printState(){
  if (fire){
    Serial.println("------------");
    Serial.println("FLAME Detected");
    Serial.println("------------");  
  }
  else{
    Serial.println("------------");
    Serial.println("NO FLAME");
    Serial.println("------------");  
  }
  changed = !changed;
}

void fireCheck(){
  if (A < 350 && D < 350){
    fire = true;
    changed = !changed;
  }
  else{
    fire = false;
    changed = !changed;  
  }
}