Hôm nay, BKAII sẽ cùng các bạn trao đổi với nhau về những khái niệm cơ bản liên quan đến một chuẩn giao thức truyền thông thông dụng nhất trong công nghiệp - tự động hóa là Modbus RTU. Nội dung trao đổi ở dưới mang tính chất chia sẻ dựa trên những kiến thức, kinh nghiệm cá nhân và bao gồm quá trình tìm hiểu tài liệu trên internet,... không mang tính lý thuyết chuẩn mực các bạn nhé! 

Vậy, Modbus RTU là gì?

Giao thức Modbus RTU là một giao thức mở, sử dụng đường truyền vật lý RS-232 hoặc RS485 và mô hình dạng Master-Slave. Đây là một giao thức được sử dụng rộng rãi trong nhiều lĩnh vực như BMS (Building Management Systems), tự động hóa, công nghiệp, điện lực,.... Chắc hẳn sẽ có bạn tự hỏi, tại sao giao thức Modbus này lại thông dụng như thế, đi đến đâu, đụng vào thiết bị gì thì hầu như cũng có giao thức này? Vâng, câu trả lời cho câu hỏi trên chắc chỉ cần gói gọn trong vài từ: Ổn định - Đơn giản - dễ dùng.

Modbus được coi là giao thức truyền thông hoạt động ở tầng "Application", cung cấp khả năng truyền thông Master/Slave giữa các thiết bị được kết nối thông qua các bus hoặc network. Trên mô hình OSI, Modbus được đặt ở lớp 7. Modbus được xác định là một giao thức hoạt động theo "hỏi/đáp" và sử dụng các "function codes" tương ứng để hỏi đáp.

Cấu trúc bản tin Modbus RTU

Một bản tin Modbus RTU bao gồm: 1 byte địa chỉ  -  1 byte mã hàm - n byte dữ liệu - 2 byte CRC như hình ở dưới:

Chức năng và vai trò cụ thể như sau:

  • Byte địa chỉ: xác định thiết bị mang địa chỉ được nhận dữ liệu (đối với Slave) hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master). Địa chỉ này được quy định từ 0 - 254
  • Byte mã hàm: được quy định từ Master, xác định yêu cầu dữ liệu từ thiết bị Slave. Ví dụ mã 01: đọc dữ liệu lưu trữ dạng Bit, 03: đọc dữ liệu tức thời dạng Byte, 05: ghi dữ liệu 1 bit vào Slave, 15: ghi dữ liệu nhiều bit vào Slave ...
  • Byte dữ liệu: xác định dữ liệu trao đổi giữa Master và Slave.
    • Đọc dữ liệu:  
      • Master:  2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu            
      • Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu - n byte dữ liệu đọc được
    • Ghi dữ liệu:   
      • Master: 2 byte địa chỉ dữ liệu  - 2 byte độ dài dữ liệu - n byte dữ liệu cần ghi     
      • Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu  
  • Byte CRC: 2 byte kiểm tra lỗi của hàm truyền. cách tính giá trị của Byte CRC 16 Bit

Sự khác nhau giữa Modbus RTU và Modbus TCP 

Sự khác nhau cơ bản giữa MODBUS RTU và MODBUS TCP (còn được gọi là modbus IP, Modbus Ethernet hay Modbus TCP/IP) là Modbus TCP chạy ở cổng vật lý Ethernet và Modbus RTU thì chạy ở cổng vật lý serial nối tiếp (RS232 hoặc RS485). Nếu muốn chuyển đổi giữa hai giao thức này thì các bạn có thể tham khảo các thiết bị chuyển đổi công nghiệp modbus gateway.

MODBUS RTU Memory Map

Modbus RTU 
Data Type
Common
name
Starting address
Modbus Coils Bits, binary values, flags 00001
Digital Inputs Binary inputs 10001
Analog Inputs Binary inputs 30001
Modbus Registers Analog values, variables 40001

 

Sự khác nhau giữa Modbus RTU và Modbus ASCII

Đây là hai chế độ truyền dữ liệu cơ bản trong giao thức Modbus khi sử dụng đường truyền nối tiếp là: ASCII và RTU.  Mỗi một chuẩn sẽ có một cách mã hóa tin nhắn khác nhau, cho dù đều là chuẩn Modbus chung. Ví dụ, Modbus ASCII cho phép người đọc có thể đọc trực tiếp tin nhắn trong bản tin. Nhưng với Modbus RTU, thì nội dung data đã được mã hóa nhị phân và không thể đọc được trong quá trình giám sát. Một điểm đặc biệt trong giao thức Modbus là trong một đường truyền dẫn Modbus, tất cả các giao thức phải là giống nhau, có nghĩa là Modbus ASCII không thể giao tiếp với modbus RTU và ngược lại. Nếu muốn hai giao thức này hiểu nhau thì có thể sử dụng cách chuyển đổi giao thức modbus RTU và modbus ASCII tại đây.

Các tính chất của Modbus ASCII và Modbus RTU 

Modbus/ASCIIModbus/RTU
Characters ASCII 0…9 and A..F Binary 0…255
Error check LRC Longitudinal Redundancy Check CRC Cyclic Redundancy Check
Frame start character ‘:‘ 3.5 chars silence
Frame end characters CR/LF 3.5 chars silence
Gaps in message 1 sec 1.5 times char length
Start bit 1 1
Data bits 7 8
Parity even/odd none even/odd none
Stop bits 1 2 1 2

"BKAII - Thiết bị truyền thông TỐT nhất với giáCẠNH TRANH nhất!" 


 
 

Số lượng người đang truy cập...

Không thể hiển thị dữ liệu người dùng trực tuyến vào lúc này.

 
36.832MBMemory Usage716msRequest Duration
Joomla! Version4.4.13
PHP Version8.1.32
Identityguest
Response200
Templatet3_bs3_blank
Database
Server
mysql
Version
10.11.8-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
array:1 [ "srsltid" => "AfmBOoqbkGZhblr5D4Yz3thzXmkNncG3-wK_sQCr3Fv4iK2egyDV6JuE" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:50 [ "PATH" => "/usr/local/bin:/bin:/usr/bin" "HTTP_ACCEPT" => "text/html,application/xhtm...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1749472263 "last" => 1749472263...
registry
array:3 [ "data" => array:3 [ "current_theme" => "red" "current_direction" => "ltr" "c...
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (4.1MB) (27.81ms)
  • afterInitialise (7.13MB) (86.7ms)
  • afterRoute (4.35MB) (82.05ms)
  • beforeRenderComponent com_content (380.19KB) (3.93ms)
  • Before Access::preloadComponents (all components) (477.52KB) (4.14ms)
  • After Access::preloadComponents (all components) (121.71KB) (944μs)
  • Before Access::preloadPermissions (com_content) (4.07KB) (24μs)
  • After Access::preloadPermissions (com_content) (1.09MB) (3.68ms)
  • Before Access::getAssetRules (id:348 name:com_content.article.180) (66.8KB) (69μs)
  • After Access::getAssetRules (id:348 name:com_content.article.180) (26.37KB) (367μs)
  • afterRenderComponent com_content (2.82MB) (86.73ms)
  • afterDispatch (2.33KB) (194μs)
  • beforeRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (1.84MB) (24.95ms)
  • afterRenderRawModule mod_custom ( Mạng xã hội & Thống kê truy cập) (35.91KB) (1.51ms)
  • beforeRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (752B) (9μs)
  • afterRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (31.73KB) (494μs)
  • beforeRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (1.01KB) (75μs)
  • afterRenderRawModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (2.22KB) (171μs)
  • beforeRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (800B) (6μs)
  • afterRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (2.09KB) (153μs)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (824B) (49μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (36.7KB) (1.33ms)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (7μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumbs) (2.7KB) (212μs)
  • beforeRenderModule mod_whosonline (Số lượng người đang truy cập...) (760B) (52μs)
  • afterRenderRawModule mod_whosonline (Số lượng người đang truy cập...) (9.6KB) (642μs)
  • beforeRenderModule mod_whosonline (Số lượng người đang truy cập...) (752B) (6μs)
  • afterRenderModule mod_whosonline (Số lượng người đang truy cập...) (1.98KB) (153μs)
  • beforeRenderModule mod_articles_latest (Bài viết mới cập nhật...) (520B) (52μs)
  • afterRenderRawModule mod_articles_latest (Bài viết mới cập nhật...) (217.29KB) (98.58ms)
  • beforeRenderModule mod_articles_latest (Bài viết mới cập nhật...) (736B) (11μs)
  • afterRenderModule mod_articles_latest (Bài viết mới cập nhật...) (1.8KB) (195μs)
  • beforeRenderModule mod_menu (Main Menu) (2.13KB) (73μs)
  • afterRenderRawModule mod_menu (Main Menu) (9.1MB) (78.37ms)
  • beforeRenderModule mod_menu (Main Menu) (704B) (13μs)
  • afterRenderModule mod_menu (Main Menu) (1.84KB) (228μs)
  • beforeRenderModule mod_articles_categories (Demo Categories) (1.48KB) (36μs)
  • afterRenderRawModule mod_articles_categories (Demo Categories) (66.68KB) (1.99ms)
  • beforeRenderModule mod_articles_categories (Demo Categories) (720B) (7μs)
  • afterRenderModule mod_articles_categories (Demo Categories) (1.78KB) (161μs)
  • beforeRenderModule mod_finder (Smart Search Module) (344B) (64μs)
  • afterRenderRawModule mod_finder (Smart Search Module) (454.68KB) (8.29ms)
  • beforeRenderModule mod_finder (Smart Search Module) (720B) (10μs)
  • afterRenderModule mod_finder (Smart Search Module) (1.73KB) (185μs)
  • afterRender (3.65MB) (200ms)
  • 1 x afterRender (3.65MB) (27.96%)
    200.27ms
    1 x afterRenderRawModule mod_articles_latest (Bài viết mới cập nhật...) (217.29KB) (13.77%)
    98.58ms
    1 x afterRenderComponent com_content (2.82MB) (12.11%)
    86.73ms
    1 x afterInitialise (7.13MB) (12.11%)
    86.70ms
    1 x afterRoute (4.35MB) (11.46%)
    82.05ms
    1 x afterRenderRawModule mod_menu (Main Menu) (9.1MB) (10.94%)
    78.37ms
    1 x afterLoad (4.1MB) (3.88%)
    27.81ms
    1 x beforeRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (1.84MB) (3.48%)
    24.95ms
    1 x afterRenderRawModule mod_finder (Smart Search Module) (454.68KB) (1.16%)
    8.29ms
    1 x Before Access::preloadComponents (all components) (477.52KB) (0.58%)
    4.14ms
    1 x beforeRenderComponent com_content (380.19KB) (0.55%)
    3.93ms
    1 x After Access::preloadPermissions (com_content) (1.09MB) (0.51%)
    3.68ms
    1 x afterRenderRawModule mod_articles_categories (Demo Categories) (66.68KB) (0.28%)
    1.99ms
    1 x afterRenderRawModule mod_custom ( Mạng xã hội & Thống kê truy cập) (35.91KB) (0.21%)
    1.51ms
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (36.7KB) (0.19%)
    1.33ms
    1 x After Access::preloadComponents (all components) (121.71KB) (0.13%)
    944μs
    1 x afterRenderRawModule mod_whosonline (Số lượng người đang truy cập...) (9.6KB) (0.09%)
    642μs
    1 x afterRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (31.73KB) (0.07%)
    494μs
    1 x After Access::getAssetRules (id:348 name:com_content.article.180) (26.37KB) (0.05%)
    367μs
    1 x afterRenderModule mod_menu (Main Menu) (1.84KB) (0.03%)
    228μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumbs) (2.7KB) (0.03%)
    212μs
    1 x afterRenderModule mod_articles_latest (Bài viết mới cập nhật...) (1.8KB) (0.03%)
    195μs
    1 x afterDispatch (2.33KB) (0.03%)
    194μs
    1 x afterRenderModule mod_finder (Smart Search Module) (1.73KB) (0.03%)
    185μs
    1 x afterRenderRawModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (2.22KB) (0.02%)
    171μs
    1 x afterRenderModule mod_articles_categories (Demo Categories) (1.78KB) (0.02%)
    161μs
    1 x afterRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (2.09KB) (0.02%)
    153μs
    1 x afterRenderModule mod_whosonline (Số lượng người đang truy cập...) (1.98KB) (0.02%)
    153μs
    1 x beforeRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (1.01KB) (0.01%)
    75μs
    1 x beforeRenderModule mod_menu (Main Menu) (2.13KB) (0.01%)
    73μs
    1 x Before Access::getAssetRules (id:348 name:com_content.article.180) (66.8KB) (0.01%)
    69μs
    1 x beforeRenderModule mod_finder (Smart Search Module) (344B) (0.01%)
    64μs
    1 x beforeRenderModule mod_whosonline (Số lượng người đang truy cập...) (760B) (0.01%)
    52μs
    1 x beforeRenderModule mod_articles_latest (Bài viết mới cập nhật...) (520B) (0.01%)
    52μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (824B) (0.01%)
    49μs
    1 x beforeRenderModule mod_articles_categories (Demo Categories) (1.48KB) (0.01%)
    36μs
    1 x Before Access::preloadPermissions (com_content) (4.07KB) (0%)
    24μs
    1 x beforeRenderModule mod_menu (Main Menu) (704B) (0%)
    13μs
    1 x beforeRenderModule mod_articles_latest (Bài viết mới cập nhật...) (736B) (0%)
    11μs
    1 x beforeRenderModule mod_finder (Smart Search Module) (720B) (0%)
    10μs
    1 x beforeRenderModule mod_custom ( Mạng xã hội & Thống kê truy cập) (752B) (0%)
    9μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (0%)
    7μs
    1 x beforeRenderModule mod_articles_categories (Demo Categories) (720B) (0%)
    7μs
    1 x beforeRenderModule mod_custom (Công ty TNHH Tự động hóa và Tin học công nghiệp Bách Khoa (BKAII)) (800B) (0%)
    6μs
    1 x beforeRenderModule mod_whosonline (Số lượng người đang truy cập...) (752B) (0%)
    6μs
45 statements were executed, 13 of which were duplicates, 32 unique118ms3.12MB
  • SELECT @@SESSION.sql_mode;84μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `idc_session` WHERE `session_id` = ?178μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `idc_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1438μs1.73KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `idc_viewlevels`99μs976B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `idc_usergroups` AS `a` LEFT JOIN `idc_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest165μs2.27KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `idc_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`691μs4.3KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `idc_menu` AS `m` LEFT JOIN `idc_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`4.75ms820.55KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`342μs5.13KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `idc_template_styles` AS `s` LEFT JOIN `idc_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1235μs2.45KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT * FROM `idc_languages` WHERE `published` = 1 ORDER BY `ordering` ASC135μs2.22KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `idc_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44)579μs8.12KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `idc_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 01.53ms173.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `idc_content`591μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `idc_content` SET `hits` = (`hits` + 1) WHERE `id` = '180'234μs48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `idc_content` AS `a` INNER JOIN `idc_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `idc_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `idc_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `idc_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `idc_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)561μs48.62KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`314μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `idc_contentitem_tag_map` AS `m` INNER JOIN `idc_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)211μs7.72KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`337μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM idc_fields AS a LEFT JOIN `idc_languages` AS l ON l.lang_code = a.language LEFT JOIN idc_users AS uc ON uc.id=a.checked_out LEFT JOIN idc_viewlevels AS ag ON ag.id = a.access LEFT JOIN idc_users AS ua ON ua.id = a.created_user_id LEFT JOIN idc_fields_groups AS g ON g.id = a.group_id LEFT JOIN `idc_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC863μs6.06KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `idc_content` AS `a` LEFT JOIN `idc_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC7.11ms246.03KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`369μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `idc_modules` AS `m` LEFT JOIN `idc_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `idc_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`2.02ms1.36MBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,COALESCE(NULLIF(ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1), 0), 0) AS `rating`,COALESCE(NULLIF(`v`.`rating_count`, 0), 0) AS `rating_count` FROM `idc_content` AS `a` LEFT JOIN `idc_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `idc_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `idc_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `idc_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `idc_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `idc_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) ORDER BY a.created DESC LIMIT 1592.43ms249.09KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`350μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT * FROM idc_hikashop_config354μs152.94KB/administrator/components/com_hikashop/classes/config.php:16Copy
  • SET sql_mode=(SELECT REPLACE(REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''), 'STRICT_TRANS_TABLES', ''));50μs0B/administrator/components/com_hikashop/helpers/helper.php:3422Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`335μs5.14KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `idc_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1300μs928B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `idc_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)144μs968B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `idc_scheduler_tasks` AS `a` WHERE `a`.`state` = 1173μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id114μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id109μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id75μs12.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id76μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `idc_categories` AS `s` INNER JOIN `idc_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`353μs5.16KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id84μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id74μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id74μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id80μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id74μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id70μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id78μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `idc_content` WHERE `id` = :id70μs1.63KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `session_id` FROM `idc_session` WHERE `session_id` = ?105μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • INSERT INTO `idc_session` (`data`,`time`,`session_id`) VALUES (?, ?, ?)291μs864BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy