[
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)