[ 
https://issues.apache.org/jira/browse/PLC4X-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051506#comment-17051506
 ] 

César García commented on PLC4X-181:
------------------------------------

Hi,

Annex you will find the test items for writing for S7-300 and S7-400 with some 
comments.

They were written reporting good quality.

I enclose the catches of the 
packages.[^Test001_Write_Simple_Types_S7300_S7400.pcapng]

I very much appreciate the comments,

Best regards,

 

/****************************************************************
 * Test for S7300/S7400
 * Elementary Data Types
 * Bit Data Types
 ****************************************************************/ 
 builder.addItem("001","%MX200.0:BOOL", true);
 builder.addItem("002","%MB201:BYTE", (byte) 0x12);
 builder.addItem("003","%MW202:WORD", (short) 0x4321);
 builder.addItem("004","%MD204:DWORD", (int) 0x87654321);

/****************************************************************
 * Character Types
 ****************************************************************/ 
 char letra='9';
 builder.addItem("005","%MB208:CHAR", letra);
 
 /****************************************************************
 * Numeric Types
 ****************************************************************/ 
 builder.addItem("006","%MW210:INT", (short) 0x0210);
 builder.addItem("007","%MD212:DINT", (int) 0x21200212);
 builder.addItem("008","%MD216:REAL", (float) 3.141516);

/****************************************************************
 * Time Types
 ****************************************************************/
 
 /****************************************************************
 * TIME: TIME#-24d20h31m23s648ms / TIME#24d20h31m23s647ms
 * -2^31 / 2^31-1
 * The content is represented as milliseconds (ms), saved as (int)
 * TODO: Change S7 TIME to Integer not LocalTime
 ****************************************************************/ 
 int prueba = 0x12345678; 
 builder.addItem("009","%MD220:TIME", prueba);
 
 /****************************************************************
 * DATE: DATE#1990-01-01 / DATE#2168-12-31 
 * (=W#16#0000) / (=W#16#FF62) 
 * The content is the number of days since 01.01.1990
 * 
 ****************************************************************/ 
 short date = (short) 0x2c15;
 builder.addItem("010","%MW224:DATE", date);
 
 /****************************************************************
 * TIME_OF_DAY: TIME_OF_DAY#00:00:00 / TIME_OF_DAY#23:59:59.999
 * (=DW#16#0000_0000) / (=DW#16#0526_5BFF)
 * 
 ****************************************************************/ 
 int time_of_day = 0x0526_5Bff;
 builder.addItem("011","%MD226:TIME_OF_DAY", time_of_day);
 
 /****************************************************************
 * Test for S7300/S7400
 * Complex Data Types[^Test001_Write_Simple_Types_S7300_S7400.pcapng]
 ****************************************************************/ 
 long dt = ((0x20123110L << 32) | (0x59000005));
 builder.addItem("012","%MX230.0:DT", dt);
 builder.addItem("013","%MX234.0:DATE_AND_TIME", dt);


 /**************************************************************** 
 * STRING: "BARCELONA_VENEZUELA"
 * Byte no Range
 * n* Maximum length (k)
 * n+1 Current length (m)
 * n+2 1st character \ \
 * n+3 2nd character | current | Maximum
 * ... | length | length (k)
 * m+m+1 m-th character/ >
 * ... |
 * n+k+1 ... / *n = even
 ****************************************************************/ 
 builder.addItem("014","%MB100:STRING", "BARCELONA_VENEZUELA");

/****************************************************************
 * ARRAYS
 ****************************************************************/
 Boolean[] booleanArray = new 
Boolean[]\{true,false,true,true,false,true,true,false,true,true,false,true};
 builder.addItem("015","%MX150.0:BOOL[12]", booleanArray);
 builder.addItem("016","%MX155.0:BOOL[12]", booleanArray);
 builder.addItem("017","%MX160.0:BOOL[12]", booleanArray);
 
 Byte[] byteArray = new Byte[]\{0x01, 0x02, 0x03, 0x04, 0x05, 0x06};
 builder.addItem("018","%MB152:BYTE[6]", byteArray);
 
 Short[] shortArray = new Short[]\{0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 
0x6666, 0x7777}; 
 builder.addItem("019","%MW160:WORD[7]", shortArray);
 
 builder.addItem("020","%MW174:INT[7]", shortArray); 
 
 Integer[] intArray = new Integer[]\{0x6666_7777, 0x2222_3333, 0x5555_6666, 
0x1234_4444, 0x2222_5555, 0x1212_6666, 0xAAAA_7777}; 
 builder.addItem("021","%MD174:DINT[7]", intArray);

Float[] floatArray = new Float[]\{(float)3.1416, (float)1.4142, (float)2.7182, 
(float)0.5963, (float)2.5029, (float)0.3183, (float)1.2599}; 
 builder.addItem("022","%MD174:REAL[7]", floatArray); 
 
 builder.addItem("023","%MD174:TIME[7]", intArray); 
 
 builder.addItem("024","%MW174:DATE[7]", shortArray);
 
 builder.addItem("025","%MD174:TIME_OF_DAY[7]", intArray);
 
 Long[] longArray = new Long[]\{dt, dt, dt, dt, dt, dt, dt}; 
 builder.addItem("026","%MX120.0:DT[7]", longArray);
 builder.addItem("027","%MX50.0:DATE_AND_TIME[7]", longArray);
 
 Character[] characterArray = new Character[]\{'A','B','C','D','E','F','G'};
 builder.addItem("028","%MB12:CHAR[7]", characterArray);
 
 //TODO: String array dont support for this versión. write only
 // the firts Item.
 String[] strArray = new String[]\{"BARCELONA","ANZOATEGUI","VENEZUELA"};
 builder.addItem("029","%MB20:STRING[3]", strArray);

 

> Reading / Writing of basic types PLC S7.
> ----------------------------------------
>
>                 Key: PLC4X-181
>                 URL: https://issues.apache.org/jira/browse/PLC4X-181
>             Project: Apache PLC4X
>          Issue Type: Improvement
>          Components: Driver-S7
>            Reporter: César García
>            Assignee: César García
>            Priority: Major
>             Fix For: 0.6.1
>
>         Attachments: Test001_Write_Simple_Types_S7300_S7400.pcapng
>
>
> The reading / writing of the basic S7 data types is corrected. In this 
> version it focuses on the S7-300 and S7-400 devices.
> It also corrects the handling of arrangements associated with the basic types.
> In the case of complex variables of type time (DATE, TIME, TIME__OF_DAY, 
> etc.), since there is no direct equivalence in Java, its conversion is left 
> at the user application level.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to