Hallo,

I´m having a hard time programming with the PCWorx Engineer.

There are a lot of basic FunctionBlocks/Functions meantioned in the help center and/or selectable in the programming interface, which are not implemented for the PLCnext.

Examples:

WORD_TO_BITS

When I type this in ST-Code there is a quick help (showing the function arguments order) for it but it is not working.

PULSE_GEN

German error msg:

"Die ausgewählte Ressource axcf2152:OLC unterstützt die Programmorganisationseinheit ACTF nicht"

"Die ausgewählte Ressource axcf2152:OLC unterstützt die Programmorganisationseinheit PULSE_GEN nicht"

I could add more examples...

Could you help me to find an efficient way to convert a String containing a HEX number to Bits?

The String could look like this "input;00C3" and I need to split this into Bits.

Converting the String into a Number always converts it from DEZ to whatever. I don´t know how to Handle it as HEX Numbers.

My Workarround in ST is not really efficient:

/*parse string: input:0000KOMISCHESZEICHEN*/

//cut number from String

str_tmp:= str_in;

str_tmp:= DELETE(str_tmp,6,1);

//number String to Buf (takes number as DEZ but is really HEX)

b_cpyRdy:= STRING_COPY(str_tmp,buf_tmp,0,4);

r_tmp:= 0;

//reconvert false DEZ to real DEZ

(* Variable und alle Werte müssen vom Typ INT sein *)

FOR int_i := 0 TO 4 BY 1 DO

int_x:= int_x+1;

CASE TO_INT(buf_tmp[int_i])(* Ausdruck (muss einen INT Wert zurückgeben*) OF

48: ;//0 -> muss nicht berechnet werden!

49: r_tmp := r_tmp + 1*EXPT(anyreal16,3-int_i);//1

50: r_tmp := r_tmp + 2*EXPT(anyreal16,3-int_i);//2

51: r_tmp := r_tmp + 3*EXPT(anyreal16,3-int_i);//3

52: r_tmp := r_tmp + 4*EXPT(anyreal16,3-int_i);//4

53: r_tmp := r_tmp + 5*EXPT(anyreal16,3-int_i);//5

54: r_tmp := r_tmp + 6*EXPT(anyreal16,3-int_i);//6

55: r_tmp := r_tmp + 7*EXPT(anyreal16,3-int_i);//7

56: r_tmp := r_tmp + 8*EXPT(anyreal16,3-int_i);//8

57: r_tmp := r_tmp + 9*EXPT(anyreal16,3-int_i);//9

65: r_tmp := r_tmp + 10*EXPT(anyreal16,3-int_i);//A

66: r_tmp := r_tmp + 11*EXPT(anyreal16,3-int_i);//B

67: r_tmp := r_tmp + 12*EXPT(anyreal16,3-int_i);//C

68: r_tmp := r_tmp + 13*EXPT(anyreal16,3-int_i);//D

69: r_tmp := r_tmp + 14*EXPT(anyreal16,3-int_i);//E

70: r_tmp := r_tmp + 15*EXPT(anyreal16,3-int_i);//F

//usw A,B,C...F

END_CASE

END_FOR

int_x:= TO_INT(r_tmp);

w_out:= TO_WORD(int_x);

Thanks for your help,

Jimmy Pesto