diff --git a/APP_Framework/Applications/control_app/plc_demo/omron/omron_cp1h.c b/APP_Framework/Applications/control_app/plc_demo/omron/omron_cp1h.c index 44983b1fd..4985c435c 100644 --- a/APP_Framework/Applications/control_app/plc_demo/omron/omron_cp1h.c +++ b/APP_Framework/Applications/control_app/plc_demo/omron/omron_cp1h.c @@ -18,3 +18,32 @@ * @date 2023.4.1 */ +#include + +void ControlOmronCP1HTest(void) +{ + int i = 0; + uint16_t read_data_length = 0; + uint8_t read_data[1024] = {0}; + ControlProtocolType fins_protocol = ControlProtocolFind(); + if (NULL == fins_protocol) { + printf("%s get fins protocol %p failed\n", __func__, fins_protocol); + return; + } + + printf("%s get fins protocol %p successfull\n", __func__, fins_protocol); + + if (CONTROL_REGISTERED == fins_protocol->protocol_status) { + ControlProtocolOpen(fins_protocol); + + for (;;) { + read_data_length = ControlProtocolRead(fins_protocol, read_data, sizeof(read_data)); + printf("%s read [%d] fins data %d using receipe file\n", __func__, i, read_data_length); + i++; + PrivTaskDelay(100000); + } + + //ControlProtocolClose(fins_protocol); + } +} +PRIV_SHELL_CMD_FUNCTION(ControlOmronCP1HTest, Omron Plc Cp1h Demo, PRIV_SHELL_CMD_MAIN_ATTR); diff --git a/APP_Framework/Applications/control_app/plc_demo/siemens/README.md b/APP_Framework/Applications/control_app/plc_demo/siemens/README.md new file mode 100644 index 000000000..444ecb54d --- /dev/null +++ b/APP_Framework/Applications/control_app/plc_demo/siemens/README.md @@ -0,0 +1,79 @@ +# SIEMENS - S7-1512通信测试 + +[TOC] + +## 通信接线及参数设置 + +* 本体以太网口 + +* FINS协议,PLC IP:192.168.250.2,Port:102 + +## 存储区 + +- 存储区 Q,DB区。 + +## JSON配方设计 + +* 共测试BOOL,INT16共2种类型数据,以下为JSON文件解释。 + + - ```json + { + "device_id": 1, //设备ID默认是1,此参数无效 + "device_name": "S7-1512", //设备名称,自定义 + "communication_type": 0, //通讯协议类型 0是以太网,1是串口 + "socket_config": { //以太网配置 + "plc_ip": "192.168.250.2", //PLC的IP地址 + "local_ip": "192.168.250.233", //矽达通IP地址设定 + "gateway": "192.168.250.1", //矽达通的网关地址设定 + "netmask": "255.255.255.0", //矽达通子网掩码设定 + "port": 102 //端口号设定 + }, + "protocol_type": 1, //通讯协议,5代表FINS协议 + "read_period": 100, //交互周期ms + "read_item_list": [ + { + "value_name": "布尔1", //变量名称,自定义 + "value_type": 1, //变量类型,BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9 + "area": "Q", //变量功能块 + "wordlen": "Bit", //变量字长类型,有:Bit Byte Word DWord Real Counter Timer + "db_number": 1, //如为DB区,填写对应的DB块编号,如不是DB区,无效 + "start": 1, //BOOL地址偏移位,采集变量地址是Q0.1 + "amount": 1 //BOOL长度,默认是1,代表读取1个BOOL长度 + }, + { + "value_name": "整型", //变量名称,自定义 + "value_type": 3, //变量类型,BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9 + "area": "DB", //变量功能块 + "wordlen": "Word", //变量字长类型,有:Bit Byte Word DWord Real Counter Timer + "db_number": 18, //如为DB区,即DB18块 + "start": 2, //Word地址偏移位,采集变量地址是DB18.DBW2 + "amount": 1 //Word长度,默认是1,代表读取1个WORD长度,2个字节 + }, + { + "value_name": "浮点数", //变量名称,自定义 + "value_type": 9, //变量类型,BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9 + "area": "DB", //变量功能块 + "wordlen": "Real", //变量字长类型,有:Bit Byte Word DWord Real Counter Timer + "db_number": 18, //如为DB区,即DB18块 + "start": 18, //Real地址偏移位,采集变量地址是DB18.DBD18 + "amount": 1 //Real长度,默认是1,代表读取1个Real长度,4个字节 + } + ] + } + ``` + +## 通信测试 + + (1) 新增1个通信demo,命名为simens_s7_1500.c; + + (2) 复制样例代码程序到simens_s7_1500.c文件中; + + (3) void **ControlS71500Test**(void)更改函数名; + + (4) PRIV_SHELL_CMD_FUNCTION(**ControlS71500Test, Siemens Plc S7_1512 Demo**, PRIV_SHELL_CMD_MAIN_ATTR);更改测试指令; + + (5) 剪裁配置完成后,用过烧写器下载至矽达通中,重启后完成测试。 + + + + \ No newline at end of file diff --git a/APP_Framework/Applications/control_app/plc_demo/siemens/test_recipe_S7_1512.json b/APP_Framework/Applications/control_app/plc_demo/siemens/test_recipe_S7_1512.json index 31df9a200..f9530f371 100644 --- a/APP_Framework/Applications/control_app/plc_demo/siemens/test_recipe_S7_1512.json +++ b/APP_Framework/Applications/control_app/plc_demo/siemens/test_recipe_S7_1512.json @@ -1,6 +1,6 @@ { "device_id": 1, - "device_name": "demo", + "device_name": "S7-1512", "communication_type": 0, "socket_config": { "plc_ip": "192.168.250.2", @@ -12,33 +12,6 @@ "protocol_type": 1, "read_period": 100, "read_item_list": [ - { - "value_name": "浮点数", - "value_type": 9, - "area": "DB", - "wordlen": "Real", - "db_number": 18, - "start": 18, - "amount": 1 - }, - { - "value_name": "整型1", - "value_type": 3, - "area": "M", - "wordlen": "WORD", - "db_number": 1, - "start": 100, - "amount": 1 - }, - { - "value_name": "整型2", - "value_type": 3, - "area": "M", - "wordlen": "WORD", - "db_number": 1, - "start": 102, - "amount": 1 - }, { "value_name": "布尔1", "value_type": 1, @@ -76,13 +49,22 @@ "amount": 1 }, { - "value_name": "整型3", + "value_name": "整型", "value_type": 3, "area": "DB", "wordlen": "Word", "db_number": 18, "start": 2, "amount": 1 + }, + { + "value_name": "浮点数", + "value_type": 9, + "area": "DB", + "wordlen": "Real", + "db_number": 18, + "start": 18, + "amount": 1 } ] } \ No newline at end of file